R bin是列长度的百分比

时间:2012-05-10 14:42:20

标签: r transformation bins

我有一个包含多个列的表,其值为1到8.这些列有不同的长度,所以我在最后填充了NA。我想转换数据的每一列,以便每列都能得到这样的结果:

        1  2  3  4  5  6  7  8
0-25    1  0  0  0  0  1  0  2
25-50   5  1  2  0  0  0  0  1
50-75   12 2  2  3  0  1  1  1
75-100  3  25 1  1  1  0  0  0

其中行名称是原始列的实际长度的百分比(即没有NA),列名称是原始的0到8值,新值是每个值中原始值的出现次数百分比。任何想法将不胜感激。

最佳,

林塞

PS /我意识到我的原始信息非常令人困惑。我想要转换的数据包含时间序列中的多个列,如下所示:

1
1
8
1
3
4
1
5
1
6
2
7
1
NA
NA

我需要计算该系列的0-25%,25-50%等各个值(1到8)的出现频率。 Joris的回答非常有用。我可以继续努力。谢谢!

1 个答案:

答案 0 :(得分:1)

由于缺乏某些信息,我可以为您提供:

假设0没有出现,1出现。然后,您可以使用以下小脚本来获得一列的结果。将其包裹在一个函数中,将其应用于列上,您就可以得到所需的内容。

x <- c(1,0,0,1,1,0,1,0,0,0,1,0,1,1,1,NA,NA,NA,NA,NA,NA)

prop <- which(x==1) / sum(!is.na(x))*100
result <- cut(prop,breaks=c(0,25,50,75,100))
table(result)