2
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
는 또한
tidyverse/dplyr/issues/489
처럼 do
을 시도했지만 같은 결과를 생성합니다. 매트릭스는 무엇
예상 출력 여기서
# 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