1
データフレームのリストが2つあります。今、私は更新したいR:計算された列をデータフレームのリストに追加する
scores <- sapply(list1, function(df) sum(select(df, score))/nrow(df))
scores
[1] 0.6 0.8
:私はLIST1におけるデータフレームごとにスコアを計算
# first list
df1 <- data.frame(id=1:5, score=c(rep(1, 3), rep(0, 2)))
df2 <- data.frame(id=1:5, score=c(rep(1, 4), rep(0, 1)))
df1
id score
1 1 1
2 2 1
3 3 1
4 4 0
5 5 0
df2
id score
1 1 1
2 2 1
3 3 1
4 4 1
5 5 0
list1 <- list(df1, df2)
# second list
df3 <- data.frame(id =1 :3)
df4 <- data.frame(id =1 :4)
list2 <- list(df3, df4)
最初のリストにいくつかの計算をしたいし、2番目のリストに結果を適用しますリスト2のデータフレームにスコアを付けて、以下を取得します。最初のスコアは最初のデータフレームに適用され、2番目は2番目に適用されます。私はLIST2にlapply使用して試した
df3
id score
1 1 0.6
2 2 0.6
3 3 0.6
df4
id score
1 1 0.8
2 2 0.8
3 3 0.8
4 4 0.8
、私は、これは、リスト内のDFSを更新代わりに、1の適切なスコアで
明らかlist2 <- lapply(list2, function(df){ df$score <- 1; df})
の線に沿って何かを考えています a)データフレームdf3とdf4を更新することができません。 b)計算された得点をラップ関数に渡す方法がわかりません
ヘルプありがとうございました。 TIA。
グッド悲しみを使用することができ、それは簡単でした!しかし、x < - Map(cbind、list2、score = score)のようなもの以外のdf3とdf4をどのように更新すればよいですか? df3 < - x [[1]]; df4 < - x [[2]] – Garry
@Garry元のオブジェクトを更新するのではなく、 'list'に保持する方が良いでしょう。それを更新したいのですか? 'list2 < - Map(cbind、list2、score = score);名前(list2)< - c( "df3"、 "df4"); list2env(list2、.GlobalEnv) ' – akrun
ありがとうございました。綺麗な! – Garry