繁体   English   中英

如何在 R 中使用 if/lessthan 语句在数据框中应用函数?

[英]How apply a function in data frame with if/ lessthan statement in R?

我有一个如下所示的数据框:

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

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

你可以做 -

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
df %>% mutate(X3 = ifelse(X1 < X2,0,X3))

我们可以用

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM