R 将多个数据帧中的行名称转换为数据帧中的列
我有一个R 将多个数据帧中的行名称转换为数据帧中的列,r,dataframe,rowname,R,Dataframe,Rowname,我有一个.csv文件列表,我已将这些文件读入R并放置在一个名为data的大数据框中,该数据框由6个data.frames组成,它们是文件名中的6个文件。到目前为止,我的代码是: filenames <- list.files( paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE) data = lapply(filenames, function(f) { wb = read.csv(f, header=TRUE
.csv
文件列表,我已将这些文件读入R并放置在一个名为data
的大数据框中,该数据框由6个data.frames组成,它们是文件名中的6个文件。到目前为止,我的代码是:
filenames <- list.files( paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE)
data = lapply(filenames, function(f) {
wb = read.csv(f, header=TRUE)
})
我还需要能够在其他文件上使用此代码,因此我不能简单地创建一个新列,其值为2012 01、2012 02、2012 03…
您得到了一个名为“w、x、y、z”的dataframe
。照办
data$names <- rownames(data)
谢谢,这适用于我的个人data.frames,所以如果我将其应用于data[[1]]]$namesOh,如果我在for循环中应用它,这就有效了for(k in 1:length(data)){data[[k]]$date是否有办法使用lappy()
,而不仅仅是for循环?@Boogi几乎任何for
循环都可以被做成*apply
调用。在这种情况下,您可能需要定义一个匿名函数。有关示例,请参阅我的编辑
data$names <- rownames(data)
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