【发布时间】:2013-01-13 05:15:18
【问题描述】:
我有一个这样的数据集:
testdata <- read.table(header=T, text='
patids labels dbins vprobs Response
16186 SUP0 0.0 100 1
16186 SUP0 0.2 99 1
16186 SUP0 0.4 95 1
16186 SUP0 0.6 99 1
16186 SUP0 0.8 50 1
16186 SUP0 1.0 0 1
18185 SUP0 0.0 100 0
18185 SUP0 0.2 100 0
18185 SUP0 0.4 5 0
18185 SUP0 0.6 2 0
18185 SUP0 0.8 0 0
54234 INF0 0.0 100 1
54234 INF0 0.2 95 1
54234 INF0 0.4 90 1
54234 INF0 0.6 30 1
54234 INF0 0.8 0 1
18185 INF0 0.0 100 0
18185 INF0 0.2 20 0
18185 INF0 0.4 10 0
18185 INF0 0.6 5 0
18185 INF0 0.8 3 0
18185 INF0 1.0 0 0
16186 INF0 0.0 100 1
16186 INF0 0.2 100 1
16186 INF0 0.4 70 1
16186 INF0 0.6 60 1
16186 INF0 0.8 50 1
16186 INF0 1.0 0 1
54234 SUP1 0.0 100 1
54234 SUP1 0.2 95 1
54234 SUP1 0.4 90 1
54234 SUP1 0.6 30 1
54234 SUP1 0.8 0 1
18185 SUP1 0.0 100 0
18185 SUP1 0.2 50 0
18185 SUP1 0.4 0 0
16186 SUP1 0.0 100 1
16186 SUP1 0.2 100 1
16186 SUP1 0.4 40 1
16186 SUP1 0.6 10 1
16186 SUP1 0.8 22 1
16186 SUP1 1.0 0 1 ')
现在,对于每个“标签”,即 SUP0、SUP1 等,我想获得变量 dbins 的平均值(平均值接管了所有唯一的“patids”变量。我面临的问题是“dbins”是并非每个“patids”的长度都相同。在采取这种方法之前,有没有办法用 NA 或 0 填充?我的预期输出必须是这样的:
对于 SUP0
labels dbins dbins.16186 dbins.18185
SUP0 0.0 0.0
SUP0 0.2 0.2
SUP0 0.4 0.4
SUP0 0.6 0.6
SUP0 0.8 0.8
SUP0 1.0 NA
对于 INF0
labels dbins.54234 dbins.18185 dbins.16186
INF0 0.0 0.0 0.0 0.0
INF0 0.2 0.2 0.0 0.2
INF0 0.4 0.4 0.0 0.4
INF0 0.6 0.6 0.0 0.6
INF0 0.8 0.8 0.8 0.8
INFO NA 1.0 1.0 1.0
...这样我就可以对列进行平均了。
我一直在尝试使用 ddply 和类似功能,但无法获得这种特定的输出格式。有人可以帮忙吗?
提前致谢
【问题讨论】: