gpt4 book ai didi

r - 通过功能将子集参数传递给子集

转载 作者:行者123 更新时间:2023-12-04 12:15:24 25 4
gpt4 key购买 nike

我想有一个函数,它调用subset,并传递一个subset参数:

df <- data.frame(abc=c("A","A","B","B"),value=1:4)
subset(df,abc=="A")
## works of course:
# abc value
#1 A 1
#2 A 2

mysubset <- function(df,ssubset)
subset(df,ssubset)

mysubset(df,abc=="A")
## Throws an error
# Error in eval(expr, envir, enclos) : object 'abc' not found

mysubset2 <- function(df,ssubset)
subset(df,eval(ssubset))

mysubset2(df,expression(abc=="A"))
## Works, but needs expression

我尝试使用 substitute,但是找不到正确的组合。我该如何工作?

最佳答案

A5C1D2H2I1M1N2O1R2T1答案有效,但是您可以通过简单地使用以下步骤跳过整个解析/解析周期:

mysubset <- function(df, p) {
ps <- substitute(p)
subset(df, eval(ps))
}

关于r - 通过功能将子集参数传递给子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11880906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com