You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中为dea函数添加条件筛选XREF与YREF参数?

正确实现仅用k=25数据作为DEA参考集的R代码

你的问题出在R里不能直接用if k = 25这种语法来筛选参数值,得用逻辑索引来提取数据框中k=25对应的行数据。下面给你两种可行的写法:

写法一:直接在参数里筛选

这种写法比较简洁,直接通过布尔索引提取目标数据:

# 保留你原始的数据准备代码
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)

# 正确的DEA调用:用d$k == 25筛选出k=25的行对应的x和y
e1 <- dea(d$x, d$y, XREF = d$x[d$k == 25], YREF = d$y[d$k == 25])

这里d$k == 25会生成一个布尔向量(TRUE/FALSE),标记哪些行的k值等于25,用这个向量去索引d$x和d$y,就能得到你要的参考集数据。

写法二:先创建参考子集(更易读)

如果你的数据框比较复杂,先把k=25的子集单独存起来,代码会更清晰:

# 数据准备和上面一致
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)

# 先筛选出k=25的观测子集
ref_data <- d[d$k == 25, ]

# 用子集的x和y作为参考集
e1 <- dea(d$x, d$y, XREF = ref_data$x, YREF = ref_data$y)

两种写法都能实现你的需求,选哪种看你自己的代码习惯就行~

内容的提问来源于stack exchange,提问作者user4773130

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:08:30