Как мне сжать несколько строк кода для t-тестов? - PullRequest
0 голосов
/ 31 августа 2018

Я работаю над простым набором данных, который лучше всего анализировать с помощью t-тестов, но есть как минимум 2 дюжины t-тестов, которые создают много строк кода и множество таблиц! Мне было интересно, если есть способ иметь одну строку кода, которая имеет все переменные y, так как мои переменные группировки остаются неизменными, а затем они отображаются в одной таблице. Спасибо за помощь. Также, если есть простой способ экспортировать результаты в слово или R в табличном формате, пожалуйста, дайте мне знать. Буду признателен за это.

Вот пример моего кода.

t.test(XC[tissue =="Ent"], XC[tissue =="Stom"])
t.test(XN[tissue =="Ent"], XN[tissue =="Stom"])
t.test(CN[tissue =="Ent"], CN[tissue =="Stom"])

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете использовать функцию применения

dta=data.frame(XC,XN,CN,tissue)
res=data.frame(apply(dta[,1:3],2,function(z)(unlist(t.test(z~dta$tissue))[1:8])),stringsAsFactors = F)
res[]=sapply(res,as.numeric)
round(res,6)

У вас будет что-то вроде:

# > round(res,6)
#                                      XC         XN         CN
# statistic.t                    -109.63424 -10.842582 -45.532057
# parameter.df                    101.66755 105.801883 103.753688
# p.value                           0.00000   0.000000   0.000000
# conf.int1                       -20.25112  -2.304988 -10.219741
# conf.int2                       -19.53135  -1.592335  -9.366679
# estimate.mean in group Ent       20.16557  10.044373  20.172782
# estimate.mean in group Stom      40.05680  11.993035  29.965992
# null.value.difference in means    0.00000   0.000000   0.000000
...