【发布时间】:2020-10-09 21:30:42
【问题描述】:
我有一个看起来像这样的 df:
set.seed(42)
ID <- sample(1:30, 100, rep=T)
Trait <- sample(0:1, 100, rep=T)
Year <- sample(1992:1999, 100, rep=T)
df <- cbind(ID, Trait, Year)
df <- as.data.frame(df)
其中 ID 是个体有机体,特征是表型的存在/不存在,年份是进行观察的年份。
如果特征在个体之间是随机的,我想建模,像这样
library(MCMCglmm)
m <- MCMCglmm(Trait ~ ID, random = ~ Year, data = df, family = "categorical")
现在,想打乱 Trait 列并运行 x 排列,以检查我观察到的均值和 CI 是否超出随机预期。 我可以使用 for 循环来做到这一点,但我宁愿使用 tidyverse 解决方案。 我已经读过 lapply 是一个更好的(?)替代方案,但我正在努力寻找一个足够具体的演练,我可以遵循。
我会很感激这里提供的任何建议。
干杯!
杰米
【问题讨论】:
-
lapply是基础 R。如果你真的想要 tidyverse,请查看purrr::map。 -
你所说的“洗牌”
Trait是什么意思? -
随机播放,如随机播放特征列中的行而不替换。