【问题标题】:How to add header to a dataset in R?如何将标题添加到R中的数据集?
【发布时间】:2012-12-10 21:29:10
【问题描述】:

我需要读取以下数据文件夹中的“wdbc.data”: http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

使用命令 read.csv 在 R 中执行此操作很容易,但由于缺少标题,我该如何添加它?我有信息,但不知道怎么做,我不想编辑数据文件。

【问题讨论】:

  • 您可以在函数 read.csv() 中使用参数 col.names= 并提供您的列名。
  • 记得在你的read.csv调用中指定header=FALSE
  • 只需将标头的名称作为数据框的名称即可。
  • 我有带有标题的数据集拆分,如果您需要,请告诉我。我会把它放在网页或ftp上以便于下载。

标签: r dataset statistics


【解决方案1】:

您可以执行以下操作:

加载数据:

test <- read.csv(
          "http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",
          header=FALSE)

请注意,read.csvheader 参数的默认值为 TRUE,因此要获取所有行,您需要将其设置为 FALSE

为 data.frame 中的不同列添加名称

names(test) <- c("A","B","C","D","E","F","G","H","I","J","K")

或据我了解的更快的替代方法(不重新加载整个数据集):

colnames(test) <- c("A","B","C","D","E","F","G","H","I","J","K")

【讨论】:

  • 如果read.csv 中没有header = FALSE,我认为OP 会无意中丢弃一行数据。
【解决方案2】:

如果您有data.framematrix,您也可以使用colnames 代替名称

【讨论】:

  • 还有一个data.table,以防有人想知道...... 6.5 年后
【解决方案3】:

您还可以通过创建一个值数组并分配该数组来解决此问题:

newheaders <- c("a", "b", "c", ... "x")
colnames(data) <- newheaders

【讨论】:

    【解决方案4】:

    如果您有兴趣从.txt 文件中读取一些数据,并且只将该文件的几列提取到具有自定义标题 的新.txt 文件中,则以下代码可能是有用:

    # input some data from 2 different .txt files:
    civit_gps <- read.csv(file="/path2/gpsFile.csv",head=TRUE,sep=",")
    civit_cam <- read.csv(file="/path2/cameraFile.txt",head=TRUE,sep=",")
    
    # assign the name for the output file:
    seqName <- "seq1_data.txt"
    
    #=========================================================
    # Extract data from imported files
    #=========================================================
    # From Camera:
    frame_idx <- civit_cam$X.frame
    qx        <- civit_cam$q.x.rad.
    qy        <- civit_cam$q.y.rad.
    qz        <- civit_cam$q.z.rad.
    qw        <- civit_cam$q.w
    
    # From GPS:
    gpsT      <- civit_gps$X.gpsTime.sec.
    latitude  <- civit_gps$Latitude.deg.
    longitude <- civit_gps$Longitude.deg.
    altitude  <- civit_gps$H.Ell.m.
    heading   <- civit_gps$Heading.deg.
    pitch     <- civit_gps$pitch.deg.
    roll      <- civit_gps$roll.deg.
    gpsTime_corr <- civit_gps[frame_idx,1]
    
    #=========================================================
    # Export new data into the output txt file
    #=========================================================
    myData <- data.frame(c(gpsTime_corr),
                         c(frame_idx),
                         c(qx),
                         c(qy),
                         c(qz),
                         c(qw))
    # Write :
    cat("#GPSTime,frameIdx,qx,qy,qz,qw\n", file=seqName)
    write.table(myData, file = seqName,row.names=FALSE,col.names=FALSE,append=TRUE,sep = ",")
    

    当然,您应该根据自己的应用程序修改此示例脚本

    【讨论】:

      【解决方案5】:

      这应该可以解决,

            kable(dt) %>%
            kable_styling("striped") %>%
            add_header_above(c(" " = 1, "Group 1" = 2, "Group 2" = 2, "Group 3" = 2))
      #OR
      kable(dt) %>%
        kable_styling(c("striped", "bordered")) %>%
        add_header_above(c(" ", "Group 1" = 2, "Group 2" = 2, "Group 3" = 2)) %>%
        add_header_above(c(" ", "Group 4" = 4, "Group 5" = 2)) %>%
        add_header_above(c(" ", "Group 6" = 6))
      

      更多信息您可以查看link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-07
        • 1970-01-01
        • 2013-06-13
        • 2020-05-05
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多