如何将标题添加到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.csv
的 header
参数的默认值为 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.frame
或matrix
,您也可以使用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中的数据集?的主要内容,如果未能解决你的问题,请参考以下文章
如何将具有值的列添加到 Spark Java 中的新数据集?