1

我有一个包含几个变量的数据集:

X 是数值变量,Y 和 Z 是仅包含 2 个因子的因子变量(Y=1,2 Z=3,4)

             x y z
1  -0.59131983 1 3
2   1.51800178 1 3
3   0.03079412 1 3
4  -0.43881764 1 3
5  -1.44914000 1 3
6  -1.33483914 1 4
7   0.25612595 1 4
8   0.12606742 1 4
9   0.44735965 1 4
10  1.83294817 1 4
11 -0.59131983 2 3
12  1.51800178 2 3
13  0.03079412 2 3
14 -0.43881764 2 3
15 -1.44914000 2 3
16 -1.33483914 2 4
17  0.25612595 2 4
18  0.12606742 2 4
19  0.44735965 2 4
20  1.83294817 2 4

如果我的因子变量是 Y (t.test(X~Y)),则 t 检验很容易执行。但我不确定如何进行 t 检验,例如仅比较 Z(3 和 4)之间 Y==2 的 X 值?

我不确定我的表达是否正确,所以在表格中可能更容易看到。所以,我想对 X 进行测试,其中因子变量是 Z 并且 Y==2。我怎么能这样做?在 STATA 中很容易: ttest var1 if var3==3, by(var2)

但我在 R 中没有得到它:(

         x     y  z
11 -0.59131983 2 3
12  1.51800178 2 3
13  0.03079412 2 3
14 -0.43881764 2 3
15 -1.44914000 2 3
16 -1.33483914 2 4
17  0.25612595 2 4
18  0.12606742 2 4
19  0.44735965 2 4
20  1.83294817 2 4
4

1 回答 1

0

如果您阅读t.testR 中的文档,您会发现对于单样本 t.tests,您不应该使用函数的公式接口(类型?t.test):

公式界面仅适用于 2-sample 测试。

因此,在您的情况下,您需要根据您指定的条件创建 data.frame 的子集,如下所示:

df2 <- df[df$y==2 & df$z %in% c(3,4), ]

> df2
             x y z
11 -0.59131983 2 3
12  1.51800178 2 3
13  0.03079412 2 3
14 -0.43881764 2 3
15 -1.44914000 2 3
16 -1.33483914 2 4
17  0.25612595 2 4
18  0.12606742 2 4
19  0.44735965 2 4
20  1.83294817 2 4

t.test然后使用以下语法运行一个样本:

> t.test(x=df2$x)

    One Sample t-test

data:  df2$x
t = 0.1171, df = 9, p-value = 0.9094
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
 -0.7275964  0.8070325
sample estimates:
 mean of x 
0.03971805 
于 2015-02-28T15:25:04.563 回答