2

R-Studio の最新バージョンを使用しています。

相関関係をテストしたい一連のデータ フレームを作成しました。データ フレームを作成した後u、すべてのデータ フレームのユニバースを示す変数を作成しました。data.frameそれぞれを通過するループを作成uし、次のテストを実行したいと思いますcorr(data.frame)

次のコードがあります。

corrvals <- NULL
for (i in seq(along=u[])) {
corrvals <- corr(u)
}

ここでやりたいことに沿ったものを見つけました

問題は、すべての が希望どおりに設定されていることです。リスト内のすべてを実行して、関数を実行data.frameしたいだけです。data.framecorr

また、次のように、data.frame の名前とその相関値を出力したいと思います。

data.frame Corr
ac         -0.03445345
af          0.023429
.
.
.
n           corr(n)

私の空の収納容器にcorrvals

ありがとうございました

4

2 に答える 2

4

data.frames をリストに入れてから実行することをお勧めしますlapply。このような:

# setting up a reproducible example
data(mtcars)
data(iris)
# remove the last column cause it ain't numeric.
iris <- iris[,-5]
listOfDataFrames <- list()
listOfDataFrames[[1]] <- mtcars
listOfDataFrames[[2]] <- iris

# here's a one liner using base R. 
lapply(listOfDataFrames,cor)

SOへようこそ、ところで。ああ、そうですcorか。ただし、これは基本的にどの関数でも機能します。

于 2013-03-21T14:29:30.370 に答える
4

ここに投稿することが多いようですlapply。ループを隠す便利なラッパーですが、まさにあなたが望むことを行います...

編集

名前が必要なため、もう少し関与します。また、corr関数はパッケージからのものですboot

u <- list( df1 , df2 , df3 )
attr(u, "names") <- c("df1","df2","df3")
require( boot )
res <- lapply( u , function(x) { names(x) ; corr(x) } )

res
#$df1
#[1] 0.353647

#$df2
#[1] 0.4494202

#$df3
#[1] -0.003907642
于 2013-03-21T14:29:37.817 に答える