a <- data.frame(x = c(1, 2))
b <- data.frame(x = c(3, 4))
for (df in list(a, b)) {
print(df)
df$y <- c(5, 6)
}
各データフレームは正しく印刷されますが、列の追加は失敗します。
広範なウェブ検索は次のようなものを提案しました
lapply(list(a, b), function(df){
df$y <- c(5, 6)
})
しかし、これは私を助けませんでした。
私も非常に興味があるのは、なぜ
for
の印刷文ループは機能しますが、
y
の追加列が失敗します。
これは私にとって驚くべきことです。
回答 2 件
> a <- data.frame(x = c(1, 2)) > b <- data.frame(x = c(3, 4)) > l <- list(a = a, b = b) > list2env(lapply(l, function(x) {x$y <- c(5, 6);x}), envir = .GlobalEnv) <environment: R_GlobalEnv> > a x y 1 1 5 2 2 6 > b x y 1 3 5 2 4 6
関連記事
- 配列内のオブジェクトの値を変更します
- 状態Reactのオブジェクトの配列の変数を変更します
- オブジェクトの配列内のオブジェクトの配列に対して `every`メソッドを実行します
- 処理されていないオブジェクトの配列内の関数であり、文字列JSとして返されます
- mongoDBの別のコレクションと同じキー集約を持つネストされたオブジェクト内にネストされます
- CSS:2つのオブジェクトの交差の背景を変更するにはどうすればよいですか?
- ffmpegはビデオファイル内のメタデータを変更します
- 内のコンテンツを変更して、現在クリックされているボタンと一致させるにはどうすればよいですか?
- div内でのみ属性を変更する
- reactフックを使用してreactnativeのTextInputでオブジェクトの配列の特定の文字列を変更するにはどうすればよいですか?
あなたは
df
を返さなければなりません がその追加列にあります。 試してください:出力は次のとおりです。
@ dash2が想定しているように、これらの変更された
df
を割り当てることができます。 あなたのlist
にdf
の の。したがって、完全なコードは次のようになります。