根据原始数据帧的两列之间的条件创建新的数据帧[关闭]
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
以上是关于根据原始数据帧的两列之间的条件创建新的数据帧[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何根据一个数据帧中的列值和R中另一个数据帧的列标题名称有条件地创建新列