0

みんな特定の人を参照する2列のデータ(数値、中央値など)を生成するコードがあります...しかし、7人のサンプルを採取したので、基本的に次の出力が得られます。

[[1]
Number Median
1       5
2       3  
.....
[[2]]
Number Median
1       6
2       4
....
[[3]]
Number Median
1       3
2       5

だから私は基本的にこの出力を取得します....[[7]]までこのコードを使用してこの出力をExcelに転送しようとしました

write.csv(cbind(data),"data1.csv")

そして、私はこのタイプの出力を取得します:

list(c(Median =.......It lists all the median on the rows

しかし、列NOT ROWSの「中央値」と「数値」を参照するデータを保存したい

入力するだけなら

write.csv(data,"data1.csv")

エラーが発生する

arguments imply differing number of rows: 157, 179, 178, 180
4

2 に答える 2

2

マリウスが言ったように、ファイルlistdata.frames書き込めない があり.csvます。あなたがする必要があります:

NewDataFrame <- do.call("rbind", YourList)
write.csv(NewDataFrame, "Data.csv")

do.calla から各要素を取得し、指定したlist関数 (この場合rbindは ) をすべての要素に適用します。

于 2013-03-06T00:41:02.563 に答える
0

ここに 2 つのオプションがあります。どちらも次のサンプル データを使用します。

myList <- list(data.frame(matrix(1:4, ncol = 2)),
               data.frame(matrix(3:10, ncol = 2)),
               data.frame(matrix(11:14, ncol =2)))
myList
# [[1]]
#   X1 X2
# 1  1  3
# 2  2  4
# 
# [[2]]
#   X1 X2
# 1  3  7
# 2  4  8
# 3  5  9
# 4  6 10
# 
# [[3]]
#   X1 X2
# 1 11 13
# 2 12 14

data.frameオプション 1:がそのまま表示されるcsv ファイルを作成します。list

sink("list_of_dataframes.csv", type="output")
invisible(lapply(myList, function(x) dput(write.csv(x))))
sink()

生成された「list_of_dataframes.csv」ファイルをテキスト エディターで開くと、次のようになります。これをスプレッドシート プログラムに読み込むと、最初の列に行名が含まれ、NULLそれぞれが区切られますdata.frame

"","X1","X2"
"1",1,3
"2",2,4
NULL
"","X1","X2"
"1",3,7
"2",4,8
"3",5,9
"4",6,10
NULL
"","X1","X2"
"1",11,13
"2",12,14
NULL

オプション 2:行数の異なるcbindbinding に対応するのバージョンを作成または検索します。data.frame

これが私が書いたそのような関数の1つです。

cbind2 <- function(datalist) {
  nrows <- max(sapply(datalist, nrow))
  expandmyrows <- function(mydata, rowsneeded) {
    temp1 = names(mydata)
    rowsneeded = rowsneeded - nrow(mydata)
    temp2 = setNames(data.frame(
      matrix(rep(NA, length(temp1) * rowsneeded),
             ncol = length(temp1))), temp1)
    rbind(mydata, temp2)
  }
  do.call(cbind, lapply(datalist, expandmyrows, rowsneeded = nrows))
}

リストに適用された関数は次のとおりです。

cbind2(myList)
#   X1 X2 X1 X2 X1 X2
# 1  1  3  3  7 11 13
# 2  2  4  4  8 12 14
# 3 NA NA  5  9 NA NA
# 4 NA NA  6 10 NA NA

write.csvその出力は、関連する関数で簡単に使用できるはずです。

于 2013-03-09T07:37:34.960 に答える