首页 > 解决方案 > 地图在其函数中无法识别 `.` 或 `.x`

问题描述

我想知道为什么map不在下面我的可重现示例上运行?

library(purrr)
library(emmeans)
library(lme4)

dat <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/dat2.csv')

fit <- lmer(math ~ time*ses + I(time^2)*ses+ (time|id), data = dat)

map(0:7, 
         ~emtrends(fit, ~ses, var= "time", max.degree= 2,at =list(ses=0,time=.))) 
# I used .x also but didn't work

Error in ref_grid(object = object, max.degree = 2, at = list(ses = 0,  : 
  object '.' not found

标签: rdataframeloopstidyversepurrr

解决方案


在这种情况下,您只需要map

library(emmeans)

purrr::map(0:7, 
     ~emtrends(fit, ~ses, var= "time", max.degree= 2,at =list(ses=0,time=.)))

如果你通过它似乎.x工作imap

purrr::imap(0:7, 
       ~emtrends(fit, ~ses, var= "time", max.degree= 2,at =list(ses=0,time=.x)))

但是,imap仅当您想在函数中传递名称或索引时使用。在这里,我们不需要它们中的任何一个,所以map应该足够了。


推荐阅读