我想重新编码数字矢量。 所有大于1的数字矢量都应编码为1。所有小于1的矢量都应编码为0。
示例:
X Y
1 1029
2 0
3 12
4 -2
我希望收到的东西:
X Y
1 1
2 0
3 1
4 0
非常感谢
答案 0 :(得分:1)
这里是pmax
pmax(sign(df$Y), 0)
#[1] 1 0 1 0
答案 1 :(得分:0)
如果您的数据框名为df
,则:
> ifelse(sign(df$y)<0, 0, sign(df$y))
[1] 1 0 1 0
答案 2 :(得分:0)
使用dplyr
软件包和使用ifelse
的另一种解决方案:
library(dplyr)
df %>%
mutate(y = ifelse(y > 1, 1, 0))