在 R 中从 class "call" 的对象中查找匹配项
Finding matches from an object of class "call" in R
鉴于 函数调用 对象 a
,我想知道如何找到 n
的实例对于 control
是 T
和 F
,如何知道每种情况下 long
的值是多少?
例如,在下面的例子中,我希望 subset 31 32 35
as n
s for哪个控件是 T
和 30 33 34
作为 n
哪个控件是 F
.
long
也是如此。换句话说,我正在寻找 call
对象的子集策略?
foo <- function(n , long, control, ...){
match.call()
}
# Example:
a <- foo(n = 30:35, long = c(1, 2, 2, 3, 1,1), control = c(F, T, T, F, F, T))
如果我们需要从'a'
中获取值
lst1 <- as.list(a)
eval(lst1$n)[eval(lst1$control)]
#[1] 31 32 35
eval(lst1$n)[eval(lst1$control) & eval(lst1$long)==1]
#[1] 35
鉴于 函数调用 对象 a
,我想知道如何找到 n
的实例对于 control
是 T
和 F
,如何知道每种情况下 long
的值是多少?
例如,在下面的例子中,我希望 subset 31 32 35
as n
s for哪个控件是 T
和 30 33 34
作为 n
哪个控件是 F
.
long
也是如此。换句话说,我正在寻找 call
对象的子集策略?
foo <- function(n , long, control, ...){
match.call()
}
# Example:
a <- foo(n = 30:35, long = c(1, 2, 2, 3, 1,1), control = c(F, T, T, F, F, T))
如果我们需要从'a'
中获取值lst1 <- as.list(a)
eval(lst1$n)[eval(lst1$control)]
#[1] 31 32 35
eval(lst1$n)[eval(lst1$control) & eval(lst1$long)==1]
#[1] 35