【问题标题】:Iterating Effect Size Calculations Through Columns通过列迭代效应大小计算
【发布时间】:2021-07-12 06:55:25
【问题描述】:

我目前正在 R 上比较高危人群和正常人群大脑中 159 个区域 (ROI) 的大小。我最初使用此循环计算 lm 模型 p 值:

storage <- list()
for(i in names(ThalPC)[-c(1:8)]){
  storage[[i]] <- lm(get(i) ~ Status, ThalPC)
}

table <-  storage %>% tibble(
    dvsub = names(.),
    untidied = .
    ) %>%
  mutate(tidy = map(untidied, broom::tidy)) %>%
  unnest(tidy) 

tab <- as.data.frame(table)

to <- subset(tab, select = -c(2))

newtable <- filter(to, term == "StatusControl")

ThalPC= 我的数据框 状态 = 他们作为对照组或高危人群的状态

现在,我有大约 59 个具有显着 p 值的区域,我希望计算它们的效应大小。目前我正在尝试使用这个循环:

stor <- list()
for(i in names(ThalPC)[-c(1:9)]) {
  stor[[i]] <- lm(get(i) ~ Status, ThalPC)
try <- effectsize(stor[[i]], type="eta")
}

但是,我收到以下错误:

Error in get(i) : object 'Left_LGN' not found

(Left_LGN是我正在研究的一个区域,所有159个区域都通过数据框设置为列)

也许我想多了,有没有人知道任何简单的解决方案/更好的方法来获得他们的效果大小?

我仍然是 R 和统计的初学者,所以非常感谢您的意见! 谢谢!

【问题讨论】:

标签: r for-loop lm


【解决方案1】:

我猜你在运行你的第一个脚本之前使用attach(ThalPC) 将 ThalPC 的列添加到搜索路径中。相反,请尝试将您对 lm 的调用构造为:

stor[[i]] <- lm(as.formula(paste(i, "~ Status")), 
    data = ThalPC)

看起来您可能还想将effectsize 的输出收集为列表的元素,否则您每次都会覆盖它。

【讨论】:

  • 效果很好!谢谢!!很好,我在我的最终代码中列出了它。
  • 很高兴为您提供帮助,欢迎来到 Stack Overflow @Jane。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。 :)
猜你喜欢
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多