我想从我的数据框创建多个向量,然后对这些(配对)向量执行测试。在下面的数据框中,A是2级的因子,B是5级的因子,C是数值变量。
因此,对于VAR2的每个值,我想测试VAR对X和Y(VAR1)的值。在下面的例子中:对于A(VAR2),我需要X的向量(1,2)和Y的(6,12)(以及VAR2中其他因子的向量)。我想我需要使用自定义函数(因为我的实际数据集有大约80个VAR2的唯一值,但我不知道如何制作它。
ID VAR1 VAR2 VAR3
1 1 X A 1
2 2 Y B 4
3 3 Y C 3
4 4 Y A 6
5 5 Y D 3
6 6 X A 2
7 7 X B 6
8 8 Y C 9
9 9 Y A 12
10 10 Y E 2
答案 0 :(得分:1)
这样的事情会产生你想要的结果吗?
data = fread(' ID VAR1 VAR2 VAR3
1 X A 1
2 Y B 4
3 Y C 3
4 Y A 6
5 Y D 3
6 X A 2
7 X B 6
8 Y C 9
9 Y A 12
10 Y E 2')
data$VAR2=as.factor(data$VAR2)
factors= levels(data$VAR2)
lapply(factors,function(i){
x_values=data[VAR2==i & VAR1=="X"]$VAR3
y_values=data[VAR2==i & VAR1=="Y"]$VAR3
ks.test(x_values, y_values)
})
我认为这与您建议的答案相符。