创建一个变量以调用R中的data.frame

时间:2018-08-28 09:25:23

标签: r dplyr

因此,我创建了一个程序,该程序运行摘要和方差分析,并为我绘制一些图形。问题是,对于我使用的每个新数据框,我都需要更改公式中的变量。我想做的是在分配给我感兴趣的列的脚本的开头创建一个变量,然后程序执行工作:

mydata <- Leaves.data.csv
attach(mydata)
str(mydata)

var <- Leaves

avgVaL <- group_by(mydata, Treatment, Medium, Treatment:Medium) %>% 
summarise(count=sum(!is.na(var)), mean = mean(var, na.rm = T), sd = sd(var, na.rm=T), se = sd/sqrt(count)) 

我唯一想更改的是Leaves。此代码的问题是summarisevar作为1个单个变量,并返回所有数据点而不是每个组的计数,均值,sd和se。

1 个答案:

答案 0 :(得分:0)

最后,我需要使用quo()函数,因为此函数引用我的输入而不是求值,因此(如果我理解正确),引用类似于在其他编程语言中的调用,这意味着您可以直接调用从原始数据框中获取该变量,而不是完全创建一个新变量。 同时,您必须在感兴趣的函数内部的每个调用之后使用!!,因为这会告诉函数评估已引用的变量(而不是再次引用)。

更好地解释:https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html

代码:

var <- quo(Root.growth)
avgVar <- group_by(mydata, Treatment, Medium) 
%>% summarise(count=sum(!is.na(!!var)), mean = mean(!!var, na.rm = T), sd = sd(!!var, na.rm=T), se = sd/sqrt(count))