由于融化和后续投射[1]
数据集,我获得了以下数组(?)(sumStats.c
):
, , group2 = G2_1, variable = area
group1
group3 G1_1 G1_2 G1_3 G1_4
G3_1 0.000 0.000 0.00 0.000
G3_2 0.000 0.000 0.00 0.000
G3_3 0.000 0.000 0.00 0.000
G3_4 0.000 0.000 0.00 0.000
G3_5 0.000 0.000 0.00 0.000
G3_6 0.000 0.000 0.00 0.000
G3_7 0.000 0.000 26336.99 85236.488
G3_8 0.000 4999.235 87935.73 360062.128
G3_9 0.000 0.000 0.00 0.000
G3_10 7853.982 18538.285 49744.29 134180.428
G3_11 0.000 0.000 0.00 8830.825
G3_12 0.000 0.000 0.00 0.000
, , grou2 = G2_2, variable = area
group1
group3 G1_1 G1_2 G1_3 G1_4
G3_1 0.000 0.00 0.00 0.00
G3_2 0.000 0.00 0.00 0.00
G3_3 0.000 0.00 0.00 0.00
G3_4 0.000 0.00 0.00 0.00
G3_5 0.000 0.00 0.00 0.00
G3_6 0.000 0.00 0.00 51772.66
G3_7 0.000 0.00 0.00 0.00
G3_8 7853.982 22086.38 140874.76 523373.88
G3_9 0.000 0.00 0.00 0.00
G3_10 0.000 1415.79 23325.94 13407.49
G3_11 0.000 0.00 0.00 0.00
G3_12 0.000 0.00 0.00 0.00
, , group2 = G2_3, variable = area
group1
group3 G1_1 G1_2 G1_3 G1_4
G3_1 0.0000 0.000 0.000 0.0000
G3_2 0.0000 0.000 0.000 0.0000
G3_3 0.0000 0.000 0.000 93.2632
G3_4 0.0000 0.000 0.000 0.0000
G3_5 0.0000 0.000 0.000 46353.3814
G3_6 0.0000 0.000 0.000 0.0000
G3_7 0.0000 0.000 0.000 0.0000
G3_8 7390.0570 16851.829 101013.680 232666.8839
G3_9 0.0000 2541.574 6397.271 87825.7232
G3_10 0.0000 0.000 0.000 0.0000
G3_11 436.9895 4118.440 56572.140 173866.7915
G3_12 0.0000 0.000 0.000 47924.5494
现在,我需要在每个area
内获取变量(group2
)的分数,相对于group1
中每个group3
的总和}。例如,G2_1(group2
)在G1_1(group3
)中拥有100%的G3_10(group1
),G1_2(group1
)拥有G3_8的21.24%和78.76% G3_10,等等。一旦为group1
的每一列计算了百分比,我认为我可以melt()
生成的数组来获取进一步分析所需的数据帧。
我认为ddply()
在这里会有所帮助,但由于我很难理解如何将其用于手头的任务,如果有人可以提供帮助,我将不胜感激。
[1]
sumStats.m <- melt(sumStats, id=c("group1", "group2", "group3"), "area")
sumStats.c <- cast(sumStats.m, group3 ~ group1 ~ group2 ~ variable, sum)
答案 0 :(得分:0)
尝试:
prop.table(sumstats.c,margin=c(1,3))
例如:
x<-xtabs(~cyl+vs+am,mtcars)
x
, , am = 0
vs
cyl 0 1
4 0 3
6 0 4
8 12 0
, , am = 1
vs
cyl 0 1
4 1 7
6 3 0
8 2 0
prop.table(x,margin=c(1,3))
, , am = 0
vs
cyl 0 1
4 0.000 1.000
6 0.000 1.000
8 1.000 0.000
, , am = 1
vs
cyl 0 1
4 0.125 0.875
6 1.000 0.000
8 1.000 0.000