頻度表を値のベクトルに変換する方法は?


13

RまたはExcelを使用して、頻度テーブルを値のベクトルに変換する最も簡単な方法は何ですか?

たとえば、次の頻度表をどのように変換しますか

Value   Frequency
  1.      2
  2.      1
  3.      4
  4.      2
  5.      1

次のベクトルに?

1, 1, 2, 3, 3, 3, 3, 4, 4, 5

回答:


21

Rでは、次のrepコマンドを使用して実行できます。

tab <- data.frame(value=c(1, 2, 3, 4, 5), freq=c(2, 1, 4, 2, 1))
vec <- rep(tab$value, tab$freq)

これにより、次の結果が得られます。

> tab
  value freq
1     1    2
2     2    1
3     3    4
4     4    2
5     5    1

> vec
 [1] 1 1 2 3 3 3 3 4 4 5

詳細については、をrep入力してコマンドのヘルプファイルを参照してください?rep


2
または、vec <- sample(1:5, 20, TRUE)作成者table():の単純な頻度表を指定しますrep(names(table(vec)), table(vec))。次にas.numeric()、カテゴリが実際の数字である場合、結果を変換する必要があります。
カラカル

1

明らかに、Rではより単純です。

Excelでは、ヘルパー列を使用します(がA1の場合)。

  value freq help
1     1    2  =REPT(A2 & ", ",B2)
2     2    1  =C1 & REPT(A3 & ", ",B3)
3     3    4  (drag or copy from upper cell)
4     4    2  (drag or copy from upper cell)
5     5    1  (drag or copy from upper cell)
              =LEFT(C6, LEN(C6)-1)

C7では、結果が得られます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.