';如果';R中的语句
考虑以下数据:';如果';R中的语句,r,if-statement,R,If Statement,考虑以下数据: library(Benchmarking) x <- c(4,2,4,6,9,2) y <- c(2,1,5,2,10,4) k <- c(25,25,25,30,30,30) d <- data.frame(x,y,k) 但这是行不通的。有人能告诉我如何在R中编写此代码吗?如果我正确地解释了您的问题,您可以使用apply轻松完成此操作 如果您希望XREF和YREF在K=25时只考虑列X,则: apply(d, 1, function (df) if (
library(Benchmarking)
x <- c(4,2,4,6,9,2)
y <- c(2,1,5,2,10,4)
k <- c(25,25,25,30,30,30)
d <- data.frame(x,y,k)
但这是行不通的。有人能告诉我如何在
R
中编写此代码吗?如果我正确地解释了您的问题,您可以使用apply
轻松完成此操作
如果您希望XREF和YREF在K=25时只考虑列X,则:
apply(d, 1, function (df) if (df["k"] == 25) {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["x"])
} else {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["y"])
}
)
这与您展示的示例代码不同。这相当于:
apply(d, 1, function (df) if (df["k"] == 25) {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["y"])
} else {
dea(df["x"], df["y"])
}
)
with(子集(d,k==25)、dea(d$x,d$y,XREF=x,YREF=y))
其中
d$
表示法使用原始完整数据,直接x
和y
表示子集中的变量在使用dea
函数之前过滤d
怎么样<代码>d
apply(d, 1, function (df) if (df["k"] == 25) {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["x"])
} else {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["y"])
}
)
apply(d, 1, function (df) if (df["k"] == 25) {
dea(df["x"], df["y"], XREF = df["x"], YREF = df["y"])
} else {
dea(df["x"], df["y"])
}
)