Поиск совпадений из объекта класса «вызов» в R - PullRequest
1 голос
/ 16 мая 2019

Учитывая вызов функции объект a, мне было интересно, как найти экземпляры n, для которых control равно T и F, также как узнать, каково значение long для каждого из таких случаев?

Например, в приведенном ниже случае я ожидаю подмножество 31 32 35 как n с, для которого управление равно T и 30 33 34 как n s для которого установлено значение 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))

1 Ответ

1 голос
/ 16 мая 2019

Если нам нужно получить значение из '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
...