通过以下简单代码寻找对为什么我得到警告 “要替换的物品数量不是替换长度的倍数” 的一些见解。是我需要它做的吗?
A_DF <- data.frame(A = c(1,1,2,2,3,4), B = c(0,0,0,0,0,0))
A_DF <- A_DF %>% mutate(B = replace(B, A<=2, A), B = replace(B, A>2, 7))
Warning message:
In x[list] <- values :
number of items to replace is not a multiple of replacement length
输出:
A_DF
A B
1 1 1
2 1 1
3 2 2
4 2 2
5 3 7
6 4 7
答案 0 :(得分:0)
问题出在
B = replace(B, A<=2, A)
A的长度为6,将被压缩为B的子集(当A <= 2时)。
您可以使用:
A_DF <- A_DF %>% mutate(B = A, B = replace(B, A>2, 7))
或者:
A_DF$B <- ifelse(A_DF$A>2,7,A_DF$A)