我有一个.csv
文件列表,我已经读入R并放在一个名为data
的大型数据框中,该数据框由6个data.frames组成,这些是{{1}中的6个文件}}。到目前为止我的代码是:
filenames
每个data.frame中的行名和列名完全相同,我想提取行名,而是将它们作为R中的第一列。我的一个数据框的示例就像这样:
filenames <- list.files( paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE)
data = lapply(filenames, function(f) {
wb = read.csv(f, header=TRUE)
})
我也需要能够在其他文件上使用此代码,因此我不能简单地创建一个值为 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
: : : : :
: : : : :
的新列
答案 0 :(得分:31)
你有一个名为“w,x,y,z”的列dataframe
。只是做
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