根据原始数据帧的两列之间的条件创建新的数据帧[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据原始数据帧的两列之间的条件创建新的数据帧[关闭]相关的知识,希望对你有一定的参考价值。

我有一个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)

答案
如果要在Z列中的值替换为X中的值,如果Y值等于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

以上是关于根据原始数据帧的两列之间的条件创建新的数据帧[关闭]的主要内容,如果未能解决你的问题,请参考以下文章