【问题标题】:Creating a new dataframe based on a condition between two columns of original dataframe [closed]根据原始数据框两列之间的条件创建新数据框[关闭]
【发布时间】:2020-02-16 01:44:58
【问题描述】:

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

【问题讨论】:

  • 不清楚你想做什么。
  • 我也刚刚添加了一个示例。
  • df$Z = ifelse( df$Z == df$Y, df$X, NA)
  • 还不工作

标签: r dataframe dplyr


【解决方案1】:

如果您想在 Y 值等于 Z 时用 X 中的值替换 Z 列中的值,如果不等于 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

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 2021-11-04
    • 2018-07-01
    • 1970-01-01
    • 2022-01-18
    • 2018-05-28
    • 1970-01-01
    • 2020-06-25
    • 2015-07-07
    相关资源
    最近更新 更多