【发布时间】:2018-05-04 14:50:29
【问题描述】:
我想通过使用 lapply 的条件列表parse(),然后能够将它们用作数据集的过滤器。例如考虑一下:
library(ggplot2)
argList <- list(c("mpg"), "manufacturer == \"audi\" ", "year > 2002")
argList <- lapply(argList, FUN = parse, text = argList)
data <- do.call(filter, argList)
parse() 函数采用text = " " 参数作为输入,表示要解析的字符串。我无法让lapply() 使用列表的每个元素而不是整个列表。
确实,lapply(argList, FUN = parse, text = argList) 返回
[[1]]
expression(mpg, manufacturer == "audi", year > 2002)
[[2]]
expression(mpg, manufacturer == "audi", year > 2002)
[[3]]
expression(mpg, manufacturer == "audi", year > 2002)
而不是
[[1]]
mpg
[[2]]
manufacturer == "audi"
[[3]]
year > 2002
【问题讨论】:
-
也许你想要
foo <- function(x) parse(text = x)而不是parse本身,因为text不是parse的第一个参数。 -
lapply(argList, function(x) parse(text = x))怎么样?