创建一个变量来调用R中的data.frame
因此,我创建了一个程序,运行摘要和方差分析,并为我绘制一些图表。问题是,对于我使用的每个新数据帧,我需要更改公式中的变量。我想做的是在脚本的开头创建一个变量,分配给我感兴趣的列,然后程序执行以下工作:创建一个变量来调用R中的data.frame,r,dplyr,R,Dplyr,因此,我创建了一个程序,运行摘要和方差分析,并为我绘制一些图表。问题是,对于我使用的每个新数据帧,我需要更改公式中的变量。我想做的是在脚本的开头创建一个变量,分配给我感兴趣的列,然后程序执行以下工作: mydata <- Leaves.data.csv attach(mydata) str(mydata) var <- Leaves avgVaL <- group_by(mydata, Treatment, Medium, Treatment:Medium) %>%
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))
mydata最后,我需要使用quo()
函数,因为该函数引用了我的输入,而不是求值,因此(如果我理解正确的话)引用类似于在其他编程语言中调用,这意味着您直接从原始数据帧调用该变量,而不是创建一个新的变量。
同时,您必须使用代码>隐藏在感兴趣的函数内的每个调用后面,因为这会告诉函数计算已引用的变量(而不是再次引用)
更好的解释是:
守则:
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))
var参见vignette(“编程”)
,或者可能是因为您按Treatment:Medium
进行分组,它考虑了所有列(它们之间)?当你已经有了groupby(mydata,Treatment,Medium)
时,你真的需要它吗?@AntoniosK它确实没有什么用处,但我发现它对于数据可视化很方便。至于删除,它不起作用。@A.Suliman这似乎提供了解决方案。我会处理它,如果我能让它工作,我会上传它。