11

R に読み込んで、6 つの data.frames で構成される.csv大きなデータ フレームに配置したファイルのリストがあります。これまでの私のコードは次のとおりです。 datafilenames

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 の最初の列として使用したいと思います。私のデータ フレームの 1 つの例は次のようになります。

            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...

4

1 に答える 1

33

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
于 2013-08-23T12:54:56.207 に答える