Я слежу за этим отличный ответ . У меня есть функция, которую subset
s what
(то есть переменная) пользователь запрашивает из этого набора данных .
Мне было интересно, как добавить control == TRUE
записей ЕСЛИ ОНИ ОТСУТСТВУЮТ в выводе и добавить их к what
, о которых просил пользователь, иначе ничего не делать.
В качестве примера control == T
отсутствует, предположим, что пользователь хочет поднастроить записи с type == 4
. В этом наборе данных есть несколько таких записей. Как показывают воспроизводимый код и данные ниже , это легко сделать НО Есть также некоторые другие записи, для которых control == TRUE
, как функция может найти и добавить эти control == TRUE
записи в свой производимый в настоящее время вывод?
В качестве примера control == T
предположим, что пользователь хочет поднастроить записи с prof == 2
. В этом случае control == T
записи, естественно, поставляются с подмножеством и не нуждаются в добавлении. Так что ничего не делай.
foo <- function(List, what){ ## The subsetting function
s <- substitute(what)
h <- lapply(List, function(x) do.call("subset", list(x, s)))
Filter(NROW, h)
}
D <- read.csv("https://raw.githubusercontent.com/rnorouzian/m/master/k.csv", h = T) ## Dataset
L <- split(D, D$study.name) ; L[[1]] <- NULL ## list by `study.name`
foo(L, type == 4) ## subsets entries with `type == 4`. BUT how can function `foo`
## find and append entries with `control == TRUE` to its output?
foo(L, prof == 2) # entries with `control == TRUE` are already present don't do anything!