2

この質問が初歩的であると思われる場合は、お詫び申し上げます。それが可能かどうか、またはRのデータフレームのリストでforループを使用する方法が少しわかりません.

より大きなデータフレームのサブセットであるデータフレームがあります:

billysuzy <- subset(userlist,user1 %in% c("billy","suzy"))
joefrank<- subset(userlist,user1 %in% c("joe","frank"))
georgelenny <- subset(userlist,user1 %in% c("george","lenny"))

ループして、各サブセットの同じ変数 (時間とシムスコア) の相関値を見つけたいと思います。

cor(time, simscore)

しかし、私はそのような for ループをどのように構築するか、また lapply 内でアタッチおよびデタッチする関数を構築する方法がよくわかりません。

私が考えていた:

somelist <- list(billysuzy, joefrank, georgelenny)

ラップリーで:

corz <-  lapply(somelist, function(df)  detach(), attach(df),cor(time, simscore))
lapply(corz, print)    

または for:

for (i in 1:length(somelist)){
      detach()
     attach(somelist[i])
    cor(time, simscore)
    }

誰かの R の感性を傷つけてしまったことをお詫びします。または、2 つの質問のように思われる場合、答えは 1 つのこと、つまりリスト内の dfs をループしてそこにある正しい値を見つける方法を説明するものです。

4

1 に答える 1

3

と を避けることを強くお勧めattachdetachます。

あなたはこのようなことを試すことができます

corz <-  lapply(somelist, function(df)  cor_time_sim = cor(df$time, df$simscore))

または

corz <-  lapply(somelist, function(DF)  {with(DF, corst <-  cor(time, simscore))})

または

corz <-  lapply(somelist, with, corst <-  cor(time, simscore))
于 2012-10-26T01:06:33.860 に答える