私はコードに問題がありますが、解決しましたが、今は効率的な方法を探しています。異なる列に基づいて複数の列を書き直す
私は120K人のデータと262の変数を持っており、別の列のセットに基づいてデータの一部の列を更新する必要があります。 私は複数の解決策を試してみましたが、ここでは 'Recoding data frame column based on multiple columns' が見つかりましたが、複数の列(自分のデータでは6)に対してこれを2回実行する必要があります。私は、私の経験では間違いの大きな原因であるまったく同じことを行う12行を書き込むよりも、これを実行するより良い方法があることを期待しています。
dat <- data.frame(
"x1" = c(1,0,2,0,5,3,2),
"y1" = c(12,14,13,14,12,11,13),
"x2" = c(3,2,0,1,2,5,3),
"y2" = c(11,13,14,12,13,12,11)
)
dat
# 1st try. works slowly
for(i in 1:nrow(dat)){
if(dat$x1[i] == 2){dat$y1 <- 8}
if(dat$x2[i] == 2){dat$y2 <- 8}
}
# 2nd try. doesn't work. (Tried multiple variation)
dat$y1 <- ifelse(dat$x1 == 2,dat$y1 <- 8,dat$y1)
# 3rd try. works efficiently, but annoying as hell to code.
dat$y1[dat$x1 == 2] <- 8
dat$y2[dat$x2 == 2] <- 8
ありがとうございます。 (これは私の最初の質問です。私が間違ったことをしたかどうか、または私が雄弁に、または明確にフレーズを演奏しなかったかどうか教えてください...)
安倍。
を...ありがとう! ! – abe05254
ループのメタデータ(列など)がそれほど悪くはありません。通常、データのループは悪いです。 – Bulat
私のメタデータ(あなたが私に教えてくれた新しい言葉を愛しています..)が31,000人の行を超えています...それは理想的ではありません... – abe05254