【发布时间】:2021-08-01 06:33:37
【问题描述】:
我有一个由包含因子的向量组成的数据框。我想添加另一个向量,其中包含以某些因素为条件的计算结果:
| W | X | Y | Z |
|---|---|---|---|
| 2 | P1 | 15 | if X = P1; Z = Y - W (Result Z = 13) |
| 2 | P2 | 15 | if X = P2; Z = Y + W (Result Z = 17) |
我所做的尝试都没有成功。有什么建议吗?
w <- seq(2, 20, 2)
x <- c("P1", "P2")
y <- c(15, 30, 45, 60)
data <- expand.grid(W=w, X=x, Y=y)
z_values <- function(X){
if (X == "P1") {
Y - W
} else {
Y + W
}}
data$Z <- z_values(X)
【问题讨论】:
-
data$z <- ifelse(data$X == "P1", data$Y - data$W, data$Y + data$W) -
或为简洁起见
data$z <- with(data, ifelse(X == "P1", Y - W, Y + W))。
标签: r dataframe if-statement conditional-statements operation