- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在函数中使用 ez 包中的 ezANOVA,在该函数中我希望允许使用参数指定 dv。通常,ezANOVA 会接受列变量作为符号或字符串(请参阅下面的“此方法”)。但是,尝试为 ezANOVA 提供包含符号或字符的参数是行不通的(请参阅下面的“这行不通”)。 ezANOVA 提示““the_dv”不是提供的数据框中的变量”。我尝试过用 as.symbol()、as.formula() 等各种方法包装变量名,甚至尝试了各种方法来合并 eval() 和 Replacement(),但都没有成功。这是如何实现的?
如果它的原因有帮助,我有一个项目,我需要进行许多复合分析(均值、方差分析、事后分析、图表),这些分析与所分析的数据集或变量相同。我想要一个函数,这样我就可以编写一次并运行它多次。下面的代码只是一个简单的示例。
library(ez)
df<-data.frame(ID=as.factor(101:120),
Training=rep(c("Jedi", "Sith"), 10),
Wins=sample(1:50, 20),
Losses=sample(1:50, 20))
# ----------
# This Works
# ----------
myfunc1 <- function(the_data) {
ezANOVA(
data = the_data,
wid = ID,
dv = Wins,
between = Training
)
}
myfunc1(the_data = df)
# ------------------
# This Does Not Work
# -------------------
myfunc2 <- function(the_data, the_dv) {
ezANOVA(
data = the_data,
wid = ID,
dv = the_dv,
between = Training
)
}
myfunc2(the_data = df, the_dv = Wins) # 'Wins' also fails
最佳答案
必须自己解决这个问题。事实证明,eval() 和 Replace() 的组合解决了这个难题:
# ----------------------------------
# Aha, it works!
# ----------------------------------
library(ez)
df<-data.frame(ID=as.factor(101:120),
Training=rep(c("Jedi", "Sith"), 10),
Wins=sample(1:50, 20),
Losses=sample(1:50, 20))
myfunc2 <- function(the_data, the_dv) {
eval(
substitute(
ezANOVA(data = the_data,
wid = ID,
dv = the_dv,
between = Training),
list(the_dv = the_dv)))
}
myfunc2(the_data = df, the_dv = 'Wins')
myfunc2(the_data = df, the_dv = 'Losses')
享受吧!!
关于r - 在调用 ezANOVA : How do I parameterize the dv? 的自定义 R 函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616639/
我正在使用 ezANOVA 来实现对具有主体内变量和主体间变量的实验设计的分析。我成功地实现了ezANOVA如下: structure(list(Sub = structure(c(3L, 3L, 3
我想运行一个 ezANOVA来自 ez在循环中打包多个因变量并将结果保存到多个变量中。每个因变量位于同一数据框的单独列中。 all.dependent.variables <- c("dv1", "d
我想弄清楚为什么我从下面的两段代码中得到了不同的结果(我在 python 笔记本中运行它,如果有区别的话): %Rpush df %R my_anova <- ezANOVA(data = df, d
我刚刚使用 ezANOVA 运行了混合方差分析,我需要创建一个包含输出的数据框以提取到 Rmd 中,但我找不到有关如何操作的任何信息。 我以前使用过 aov() 和 broom::tidy(),但是
我是 R 的新手,我正在尝试使用 ezANOVA 进行重复测量阶乘方差分析。 所以我有一个名为 mus.df 的数据框,它看起来像下面这样(有更多行): sub path cond weig
我一直在研究使用计划对比而不是事后 t 检验。我通常使用 ezANOVA (III 型方差分析)但似乎使用 ezANOVA 进行计划对比目前不满足。 aov()另一方面是 I 型方差分析(我不想争论哪
这个问题是关于语法和语义的,因此请在交叉验证上找到一个(尚未回答的)重复:https://stats.stackexchange.com/questions/113324/repeated-measu
我正在尝试在函数中使用 ez 包中的 ezANOVA,在该函数中我希望允许使用参数指定 dv。通常,ezANOVA 会接受列变量作为符号或字符串(请参阅下面的“此方法”)。但是,尝试为 ezANOVA
我正在尝试在函数中使用 ez 包中的 ezANOVA,在该函数中我希望允许使用参数指定 dv。通常,ezANOVA 会接受列变量作为符号或字符串(请参阅下面的“此方法”)。但是,尝试为 ezANOVA
像许多人一样,我希望停止跨越 R 和 Python 世界,而只是使用 Pandas、Pyr2、Numpy 等在 Python 中工作。我使用 R 包 ez 来实现其 ezANOVA 工具。 如果我以困
我是一名优秀的程序员,十分优秀!