我有一个3列的数据框,如下所示:
X Y Z
1 4 2
2 3 3
3 1 4
我想创建一个数据框,如果第三列与第二列匹配,则用第一列的值替换第三列。如下面的示例输出所示:
X Y Z=(X+1)
1 4 NA
2 3 2
3 1 NA
我尝试过的代码如下:
library(dplyr)
chk4 %>% chk5
chk4 %>% if(X == Z)
mutate(# Z value to Y where X = Y)
答案 0 :(得分:1)
如果您想用Y等于Z的值用X的值替换Z列中的值,否则用NA代替:
df$Z = ifelse( df$Z == df$Y, df$X, NA)
其中df
是您的数据框。
示例:
df = data.frame(X = c(1,2,3), Y = c(4,3,1), Z = c(2,3,4))
df$Z = ifelse( df$Z == df$Y, df$X, NA)
df
X Y Z
1 1 4 NA
2 2 3 2
3 3 1 NA