r - 将多个数据框中的行名称转换为数据框中的列

标签 r dataframe rowname

我有一个列表 .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/

相关文章:

c - 在 C 中运行嵌入式 R

java - R: rJava 在 Mac OSX 10.8.5 'lzma library missing' 和 'libjri.jnilib make error' 上安装失败

R 中用于回归的随机森林

r - 在 mutate 中使用 ifelse 并处理 NA

python - 将 groupby 选定的列作为字典移动到新的 pandas 列中

r - 在 R 中划分两个数据帧(一分为二)

dataframe - Pyspark 数据帧比较

r - R 的数据集 mtcars 中的第一列是什么?