2000行40000列のデータフレームがあり、2列ごとに繰り返しなしで関数を適用したいと思います。次の例では、V1とV2、V3とV4のように、2列ごとに値を追加したいと思います。
set.seed(42)
df <- as.data.frame(matrix(rnorm(16),4))
df
V1 V2 V3 V4
1 1.3709584 0.40426832 2.0184237 -1.3888607
2 -0.5646982 -0.10612452 -0.0627141 -0.2787888
3 0.3631284 1.51152200 1.3048697 -0.1333213
4 0.6328626 -0.09465904 2.2866454 0.6359504
欲望の出力は次のようになります
data.frame("V1" = df$V1+df$V2, "V2"=df$V3+df$V4)
V1 V2
1 1.7752268 0.6295630
2 -0.6708227 -0.3415029
3 1.8746504 1.1715483
4 0.5382036 2.9225958
使用を考えてcombn
いますが、繰り返しです。誰か助けてもらえますか?ありがとう!
おそらく、これを行う最も簡単な方法は、2つのシーケンス(1つは与えるものc(1, 3, ...)
ともう1つは与えるもの)でインデックスを付けc(2, 4, ...)
、結果を追加することです。
df[, seq(1,length(df),2)] + df[, seq(2,length(df),2)]
# V1 V3
# 1 1.7752268 0.6295630
# 2 -0.6708227 -0.3415029
# 3 1.8746504 1.1715483
# 4 0.5382036 2.9225958
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加