2
私はifelse
機能が正しく私のデータフレームに働いていないとの問題時に来ています。グループ化されたデータに条件に基づいて新しい列を追加したいが、最初の要素だけが新しい列に渡されているようだ。ifelse奇妙な行動は
df <- data.frame(ID = c(1, 1, 1 ,2, 2, 5), A = c("foo", "bar", "bar", "foo", "foo", "bar"), B = c(seq(1:6)))
ID A B
1 1 foo 1
2 1 bar 2
3 1 bar 3
4 2 foo 4
5 2 foo 5
6 5 bar 6
df%>%
group_by(ID) %>%
mutate(C = ifelse(length(which(A == 'bar')) >= 2, B, NA))
# A tibble: 6 x 4
# Groups: ID [3]
ID A B C
<dbl> <fctr> <int> <int>
1 1 foo 1 1
2 1 bar 2 1
3 1 bar 3 1
4 2 foo 4 NA
5 2 foo 5 NA
6 5 bar 6 NA
ようdo
を試してみましたが、それは同じ結果を生成します。
MATRIX何である)
期待出力
# A tibble: 6 x 4
# Groups: ID [3]
ID A B C
<dbl> <fctr> <int> <int>
1 1 foo 1 1
2 1 bar 2 2
3 1 bar 3 3
4 2 foo 4 NA
5 2 foo 5 NA
6 5 bar 6 NA