我想比较不同区域的两个数据集。我的输入数据是这样的:
dataIn <- read.table(text =
"bin_slots val_cases val_controls
A 0.075 0.05
A 0.252 0.276
A 0.338 0.41
A 0.911 0.983
A 0.912 0.809
A 0.965 0.917
A 1 1
A 1 1
A 0 0
A 1 0.983
A 0.398 0.681
A 0.606 0.431
B 0.58 0.608
B 0.729 0.773
B 0.871 0.879
B 1 1
B 0.297 0.282
B 0.673 0.737
B 0.807 0.803
B 0.838 0.824
B 0.633 0.658"
, header = TRUE)
使用上面的数据集我想比较A和B的val_cases和val_controls等等......因此我想得到的输出可以是这样的:
bin_slots p_value
A 0.416336774
B 0.066616655
非常感谢。 最好的祝愿, Meraj
答案 0 :(得分:0)
如果数据已配对,您可以像我在这里一样分析差异(与配对t检验的含义相同),或为&#34;个人&#34;添加一列。并运行我下面的方差分析(将个体视为随机变量,用于解释目的)。在这里,我为差异添加一列(使用dplyr
),然后运行查看拟合模型的输出。要获得更多控制权,请保存lm
的结果,并使用aov
或anova
及其方法查看结果。
ifPaired <-
dataIn %>%
mutate(diff = val_cases - val_controls)
lm(diff ~ bin_slots - 1
, data = ifPaired) %>%
summary()
输出(部分):
Coefficients:
Estimate Std. Error t value Pr(>|t|)
bin_slotsA -0.006917 0.024850 -0.278 0.784
bin_slotsB -0.015111 0.028695 -0.527 0.605
相反,如果数据不是配对,而是仅仅是独立的观察,请将数据转换为长格式(在此使用tidyr
),然后使用bin
和{{1运行ANOVA作为预测者。
group
输出(部分):
ifNotPaired <-
dataIn %>%
gather("group", "value", -bin_slots) %>%
mutate(group = gsub("val_", "", group))
lm(value ~ group + bin_slots
, data = ifNotPaired) %>%
summary()