我有一个列表 .csv
我已读入 R 并放置在名为 data
的大型数据框中的文件由 6 个 data.frames 组成,它们是 filenames
中的 6 个文件.到目前为止我的代码是:
filenames <- list.files( paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE)
data = lapply(filenames, function(f) {
wb = read.csv(f, header=TRUE)
})
每个 data.frame 中的行名和列名完全相同,我想提取行名并将它们作为 R 中的第一列。我的一个数据帧的示例如下所示:
w x y z
2012 01 12 43 87 09
2012 02 14 53 75 76
2012 03 76 34 76 28
2012 04 41 36 85 16
: : : : :
: : : : :
我也需要能够在其他文件上使用此代码,所以我不能简单地创建一个具有值
2012 01, 2012 02, 2012 03...
的新列。
最佳答案
你有一个 dataframe
列名为 "w,x,y,z"。做就是了
data$names <- rownames(data)
添加一个新列。编辑
回应Boogie的询问,这里是
lapply
用匿名函数来做循环。 foo = as.data.frame(matrix(1:15,3,5))
rownames(foo) <-c('frist','prime','lastly')
foo
bar = list(foo,t(foo), rbind(foo,foo))
bar[[1]] = as.data.frame( foo)
bar[[2]] =data.frame( t(foo))
bar[[3]] = data.frame(rbind(foo,foo))
bar
bar = lapply(bar,FUN= function(x) { x$date <-rownames(x);return(x)})
bar
关于r - 将多个数据框中的行名称转换为数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18403199/