如何将标题添加到R中的数据集?

Posted

技术标签:

【中文标题】如何将标题添加到R中的数据集?【英文标题】:How to add header to a dataset in 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上以便于下载。 【参考方案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

【讨论】:

以上是关于如何将标题添加到R中的数据集?的主要内容,如果未能解决你的问题,请参考以下文章

将样本信息添加到 PCA (R) 中的数据集

如何将具有值的列添加到 Spark Java 中的新数据集?

如何将字符串附加到R中的变量名子集?

当数据集尚未完全编码时,如何将数据从 CAT 导出到 R?

如何根据 Python 中的索引时间序列条件将新数据集附加到现有数据集

如何从 BigQuery 将大型数据集加载到 R?