1. ホーム
  2. r

[解決済み] data.frameの行を繰り返す[重複]。

2022-10-10 21:15:07

質問

data.frameの各行を繰り返し表示したい。 N 回繰り返したいのです。その結果、新しい data.frame (を含む)。 nrow(new.df) == nrow(old.df) * N ) はカラムのデータ型を保持します。

N = 2の場合の例です。

                        A B   C
  A B   C             1 j i 100
1 j i 100     -->     2 j i 100
2 K P 101             3 K P 101
                      4 K P 101

つまり、各行は2回繰り返され、文字は文字のまま、因子は因子のまま、数値は数値のまま、...となります。

私の最初の試みは、applyを使用しました。 apply(old.df, 2, function(co) rep(co, each = N)) しかし、これは私の値を文字に変換し、私は取得します。

     A   B   C    
[1,] "j" "i" "100"
[2,] "j" "i" "100"
[3,] "K" "P" "101"
[4,] "K" "P" "101"

どのように解決するのですか?

df <- data.frame(a = 1:2, b = letters[1:2]) 
df[rep(seq_len(nrow(df)), each = 2), ]