【发布时间】:2018-05-07 22:40:58
【问题描述】:
你好吗?
所以,我有一个如下所示的数据集:
dirtax_trev indtax_trev lag2_majority pub_exp
<dbl> <dbl> <dbl> <dbl>
0.1542 0.5186 0 9754
0.1603 0.4935 0 9260
0.1511 0.5222 1 8926
0.2016 0.5501 0 9682
0.6555 0.2862 1 10447
我遇到以下问题。我想沿着一个虚拟变量(lag2_majority)执行一系列 t.tests,收集这个测试的 p 值,并使用管道将其归因于一个向量。
下面选择了我要运行这些 t-tests 的所有变量,然后我省略了我的 t.test 变量 (lag2_majority) 的 NA 值,然后我尝试用这段代码对其进行总结:
test <- g %>%
select(dirtax_trev, indtax_trev, gdpc_ppp, pub_exp,
SOC_tot, balance, fdi, debt, polity2, chga_demo, b_gov, social_dem,
iaep_ufs, gini, pov4, informal, lab, al_ethnic, al_language, al_religion,
lag_left, lag2_left, majority, lag2_majority, left, system, b_system,
execrlc, allhouse, numvote, legelec, exelec, pr) %>%
na.omit(lag2_majority) %>%
summarise_all(funs(t.test(.[lag2_majority], .[lag2_majority == 1])$p.value))
但是,一旦我运行它,我得到的响应是:Error in summarise_impl(.data, dots): Evaluation error: data are essentially constant.,这令人困惑,因为沿虚拟变量的均值存在明显差异。当我将上述代码的最后一行替换为:summarise_all(funs(t.test(.~lag2_majority)$p.value)) 时,出现同样的错误。
另外,因为我想做的只是:t.test(dirtax_trev~lag2_majority, g)$p.value,例如,我想我可以做一个循环,像这样:
for (i in vars){
t.test(i~lag2_majority, g)$p.value
},
其中 vars 是一个对象,其中包含在上述代码中选择的所有变量。但我再次收到一条错误消息。具体来说,这个:Error in model.frame.default(formula = i ~ lag2_majority, data = g): comprimentos das variáveis diferem (encontradas em 'lag2_majority')
我做错了什么?
最好的问候!
【问题讨论】:
-
t.test(.[lag2_majority], .[lag2_majority == 1])$p.value)不是函数