次のデータフレームがあるとします。
i grp val
1 x 900
2 x 800
3 x 700
1 y 500
2 y 400
3 y 300
ここで、同じ内にあるすべての行に同じ値を格納する列をデータフレームに追加しますgrp
。より正確には、値val
は、に対応するグループの行から取得する必要がありますi == 2
。
i grp val val_of_2
1 x 900 800
2 x 800 800
3 x 700 800
1 y 500 400
2 y 400 400
3 y 300 400
私はのようなものを考えましたddply(df, "grp", transform, val_of_2 = <select val where i == 2>)
。しかし、私は今のところ有効な定式化を思い付いていません。
の構文は次のddply
ようになります
plyr::ddply(df, "grp", transform, val_of_2 = val[i==2])
またはを使用して dplyr
library(dplyr)
df %>%
group_by(grp) %>%
mutate(val_of_2 = val[i==2])
# A tibble: 6 x 4
# Groups: grp [2]
# i grp val val_of_2
# <int> <chr> <int> <int>
#1 1 x 900 800
#2 2 x 800 800
#3 3 x 700 800
#4 1 y 500 400
#5 2 y 400 400
#6 3 y 300 400
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加