1

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)の発生頻度を計算する必要があります。ジョリスの答えはとても役に立ちます。私はそれに取り組むことができます。ありがとう!

4

1 に答える 1

1

いくつかの情報が不足しているため、これを提供できます。

0 を出現なし、1 を出現とします。次に、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)
于 2012-05-10T15:08:12.947 に答える