R警告:“要替换的项目数不是替换长度的倍数”

时间:2018-06-29 14:29:34

标签: r dplyr mutate

通过以下简单代码寻找对为什么我得到警告 “要替换的物品数量不是替换长度的倍数” 的一些见解。是我需要它做的吗?

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

1 个答案:

答案 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)