我有一個數據框,其中包含一個列,其中包含一個函數的名稱,我想將其應用於由分組定義的數據分區。下面是設置了一個簡單的例子:在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