我有一个数据框,其中包含一个列,其中包含一个函数的名称,我想将其应用于由分组定义的数据分区。下面是设置了一个简单的例子:在magrittr中应用字符串名称的函数引用
df <- data.frame(x = c(1,2,3,4))
df.with.method <- df %>% merge(y = data.frame(method = c("mean", "median")))
什么,我想知道的是该方法适用于每个分区,就像这样:
df.with.method %>% group_by(method) %>%
mutate(x.hat = eval(method)(x))
这不起作用,但是,回国一个Error: attempt to apply non-function
错误。这不起作用或者:
df.with.method %>% group_by(method) %>%
mutate(x.hat = eval(parse(text = method))(x))
然而,这并不工作,这表明其基本思想是确定:
df.with.method %>% group_by(method) %>%
mutate(x.hat = eval(parse(text = "mean"))(x))
'get(unique(method))(x)'假设你的方法是字符类。 – Psidom
...假设你将它与'data.frame(method = c(“mean”,“median”),stringsAsFactors = FALSE)合并。目前它是一个“因素”,所以'get(unique(method))(x)'可能无法正常工作。 – r2evans