【问题标题】:How apply a function in data frame with if/ lessthan statement in R?如何在 R 中使用 if/less than 语句在数据框中应用函数?
【发布时间】:2021-10-05 16:39:17
【问题描述】:

我的数据框如下所示:

df<- data.frame(
  X1 = seq(from = 7, to = 25, by = 2),
  X2 = c(7,  10 ,11, 12, 16, 17, 20, 24, 2, 30),
  X3 = 2:11
)

我想用以下逻辑替换 X3 列

如果 X1 小于 x2 则 X3=0

【问题讨论】:

  • df$X3 = ifelse(df$X1 &lt; df$X2, 0, df$X3)

标签: r dataframe if-statement


【解决方案1】:
library(dplyr)
df %>% 
    mutate(X3 = ifelse(X1 < X2, 0, X3))

输出:

   X1 X2 X3
1   7  7  2
2   9 10  0
3  11 11  4
4  13 12  5
5  15 16  0
6  17 17  7
7  19 20  0
8  21 24  0
9  23  2 10
10 25 30  0

【讨论】:

  • 感谢您的回复-
【解决方案2】:

你可以做-

df$X3[df$X1 < df$X2] <- 0
df

#   X1 X2 X3
#1   7  7  2
#2   9 10  0
#3  11 11  4
#4  13 12  5
#5  15 16  0
#6  17 17  7
#7  19 20  0
#8  21 24  0
#9  23  2 10
#10 25 30  0

【讨论】:

  • 感谢您的回复
【解决方案3】:
df %>% mutate(X3 = ifelse(X1 < X2,0,X3))

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案4】:

我们可以使用

df$X3 <- with(df, X3 * (X1 >= X2))

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 2019-08-30
    • 2015-03-06
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多