我正在跟踪此 excellent answer 。我有一个subset
用户what
(即一个变量)从this dataset中请求的功能。
我想知道如何在输出中添加control == TRUE
项如果它们不存在并将其追加到用户请求的what
上,否则不做任何事情。
作为缺少control == T
的示例,假设用户希望使用type == 4
来对条目进行子集化。在this dataset中,有一些这样的条目。如下面的可重现的代码和数据所示,这很容易做到但是,还有control == TRUE
的其他条目,如何通过功能找到并附加这些{{ 1}}的当前可生产输出条目?
作为当前control == TRUE
的示例,假设用户希望使用control == T
子集条目。在这种情况下,prof == 2
条目自然会随子集一起提供,不需要添加。所以什么也不要做。
control == T
答案 0 :(得分:1)
我们可以将功能修改为
foo <- function(List, what){ ## The subsetting function
s <- substitute(what)
h <- lapply(List, function(x) do.call("subset", list(x, s)))
h1 <- Filter(NROW, h)
nm1 <- names(which(!sapply(h1, function(x) any(x$control))))
if(length(nm1) > 0) {
h1[nm1] <- Map(function(x, y) rbind(y, x[x$control, ]), List[nm1], h1[nm1])
}
h1
}
foo(L, type == 4)
foo(L, prof == 2)