1

一度に複数の csv ファイルを処理しています。

getResult<-function(df){
  c(runif(1, 0, 1), runif(1, 0, 1))
}

filenames <- list.files("temp", pattern="*.csv", full.names=TRUE)
ldf <- lapply(filenames, read.csv)
res <- lapply(ldf, getResult)

「getResult」関数では、2 つの float 値を計算しています。最後に、ファイル名と 2 つの「float」値を含むデータ フレームが必要です。それ、どうやったら出来るの?

私は次のことを試しました:

data.frame(res,filenames)

しかし、私は望ましい結果が得られません。誰かがガイドできますか?

ありがとう。

部分的な dput(res) 出力の追加:

list(c(0, 0.11340206185567), c(0, 0.0317919075144509), 
c(0, 0.0569948186528497))
4

2 に答える 2

2

を計算するsapply()代わりに使用できます。これにより、ファイルの数に対応する 2 つの行と列を持つマトリックスが作成されます。次に、行列を 2 つの列に転置するために使用します。lapply()resdata.frame()t()

res <- sapply(ldf, getResult)
data.frame(t(res),filenames)
于 2013-04-22T05:55:12.113 に答える