如何在 R 中複製整個資料框並在原始資料框中新增它?


R 中資料框的複製可以透過 sapply 函式建立,為了設定我們想要重複資料框的次數,我們可以使用 rep.int,times 引數。例如,如果我們有一個數據框 df,並且我們想要建立 5 個 df 的副本並在原始資料框中新增它們,則可以使用 sapply(df,rep.int,times=5)。

示例

 線上演示

考慮以下資料框 -

set.seed(151)
x1<-rnorm(5,21,3)
x2<-rnorm(5,8,1.9)
x3<-rnorm(5,3,0.08)
x4<-rnorm(5,1008,32.4)
df<-data.frame(x1,x2,x3,x4)
df

輸出

      x1       x2       x3       x4
1 20.84538 9.486324 2.961236 967.9296
2 23.29721 5.344792 3.044849 960.2204
3 20.55978 6.064207 3.005293 1086.9639
4 20.66044 8.436004 2.892010 1029.8222
5 19.81347 9.277129 2.980567 1018.0453

複製 df 兩次 -

sapply(df,rep.int,times=2)

輸出

      x1       x2       x3       x4
[1,] 20.84538 9.486324 2.961236 967.9296
[2,] 23.29721 5.344792 3.044849 960.2204
[3,] 20.55978 6.064207 3.005293 1086.9639
[4,] 20.66044 8.436004 2.892010 1029.8222
[5,] 19.81347 9.277129 2.980567 1018.0453
[6,] 20.84538 9.486324 2.961236 967.9296
[7,] 23.29721 5.344792 3.044849 960.2204
[8,] 20.55978 6.064207 3.005293 1086.9639
[9,] 20.66044 8.436004 2.892010 1029.8222
[10,] 19.81347 9.277129 2.980567 1018.0453

複製 df 三次 -

sapply(df,rep.int,times=3)

輸出

      x1       x2       x3       x4
[1,] 20.84538 9.486324 2.961236 967.9296
[2,] 23.29721 5.344792 3.044849 960.2204
[3,] 20.55978 6.064207 3.005293 1086.9639
[4,] 20.66044 8.436004 2.892010 1029.8222
[5,] 19.81347 9.277129 2.980567 1018.0453
[6,] 20.84538 9.486324 2.961236 967.9296
[7,] 23.29721 5.344792 3.044849 960.2204
[8,] 20.55978 6.064207 3.005293 1086.9639
[9,] 20.66044 8.436004 2.892010 1029.8222
[10,] 19.81347 9.277129 2.980567 1018.0453
[11,] 20.84538 9.486324 2.961236 967.9296
[12,] 23.29721 5.344792 3.044849 960.2204
[13,] 20.55978 6.064207 3.005293 1086.9639
[14,] 20.66044 8.436004 2.892010 1029.8222
[15,] 19.81347 9.277129 2.980567 1018.0453

複製 df 四次 -

示例

sapply(df,rep.int,times=4)

輸出

      x1       x2       x3       x4
[1,] 20.84538 9.486324 2.961236 967.9296
[2,] 23.29721 5.344792 3.044849 960.2204
[3,] 20.55978 6.064207 3.005293 1086.9639
[4,] 20.66044 8.436004 2.892010 1029.8222
[5,] 19.81347 9.277129 2.980567 1018.0453
[6,] 20.84538 9.486324 2.961236 967.9296
[7,] 23.29721 5.344792 3.044849 960.2204
[8,] 20.55978 6.064207 3.005293 1086.9639
[9,] 20.66044 8.436004 2.892010 1029.8222
[10,] 19.81347 9.277129 2.980567 1018.0453
[11,] 20.84538 9.486324 2.961236 967.9296
[12,] 23.29721 5.344792 3.044849 960.2204
[13,] 20.55978 6.064207 3.005293 1086.9639
[14,] 20.66044 8.436004 2.892010 1029.8222
[15,] 19.81347 9.277129 2.980567 1018.0453
[16,] 20.84538 9.486324 2.961236 967.9296
[17,] 23.29721 5.344792 3.044849 960.2204
[18,] 20.55978 6.064207 3.005293 1086.9639
[19,] 20.66044 8.436004 2.892010 1029.8222
[20,] 19.81347 9.277129 2.980567 1018.0453

複製 df 五次 -

示例

sapply(df,rep.int,times=5)

輸出

      x1          x2       x3    x4
[1,] 20.84538 9.486324 2.961236 967.9296
[2,] 23.29721 5.344792 3.044849 960.2204
[3,] 20.55978 6.064207 3.005293 1086.9639
[4,] 20.66044 8.436004 2.892010 1029.8222
[5,] 19.81347 9.277129 2.980567 1018.0453
[6,] 20.84538 9.486324 2.961236 967.9296
[7,] 23.29721 5.344792 3.044849 960.2204
[8,] 20.55978 6.064207 3.005293 1086.9639
[9,] 20.66044 8.436004 2.892010 1029.8222
[10,] 19.81347 9.277129 2.980567 1018.0453
[11,] 20.84538 9.486324 2.961236 967.9296
[12,] 23.29721 5.344792 3.044849 960.2204
[13,] 20.55978 6.064207 3.005293 1086.9639
[14,] 20.66044 8.436004 2.892010 1029.8222
[15,] 19.81347 9.277129 2.980567 1018.0453
[16,] 20.84538 9.486324 2.961236 967.9296
[17,] 23.29721 5.344792 3.044849 960.2204
[18,] 20.55978 6.064207 3.005293 1086.9639
[19,] 20.66044 8.436004 2.892010 1029.8222
[20,] 19.81347 9.277129 2.980567 1018.0453
[21,] 20.84538 9.486324 2.961236 967.9296
[22,] 23.29721 5.344792 3.044849 960.2204
[23,] 20.55978 6.064207 3.005293 1086.9639
[24,] 20.66044 8.436004 2.892010 1029.8222
[25,] 19.81347 9.277129 2.980567 1018.0453

更新於: 2020年10月17日

1K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.