从数据框创建多个向量以进行测试

时间:2016-07-13 13:03:11

标签: r vector

我想从我的数据框创建多个向量,然后对这些(配对)向量执行测试。在下面的数据框中,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

1 个答案:

答案 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)
})

我认为这与您建议的答案相符。