在R中,为什么t.test()中的na.action=na.omit不起作用



我正试图循环浏览data.table中的列列表,并对每个列进行t检验。我知道我有丢失数据的记录,所以我添加了"na.action=na.egnore",但我仍然收到一个错误。

这是的样本

Y15<1>
A B C
NA NA 1
NA 20
1 4 3

我继续在t.test中看到同样的问题,但我能够使用一个简单的lm和lapply来实现这一点。

dt_long <- (dt %>% dplyr::select(item_a, item_b, item_c, treat, block, covariate_x) %>% 
pivot_longer(cols = -c(block, treat, covariate_x))
)
#keep the order of items; otherwise r alpha sorts
list_of_outcomes <- split(d_long, forcats::fct_inorder(factor(dt_long$name)), lex.order = FALSE)
models_1 <- lapply(list_outcomes, function(x) lm(value ~ treat + block + covariate_x, x)) # consider interacting with block 

models_1的好处在于,在这种形式下,stargazer可以输出一个干净的表,并且您可以很容易地获得一个健壮的标准错误列表。

最新更新