如何在具有相同名稱的列中新增值並將其合併到 R 中?


要新增具有相同名稱的列中的值並將其合併到 R 中,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。
  • 新增具有相同名稱的列值,並透過使用 do.call 和 cbind 將其合併。

建立資料框

讓我們建立一個如下所示的資料框:

df<-
data.frame(x=rpois(25,1),y=rpois(25,2),x=rpois(25,5),z=rpois(25,2),y=rpois(25,1),z=rpoi
s(25,5),check.names=FALSE)
df

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能有所不同):

  x y x z y z
1 1 1 7 1 1 1
2 3 2 4 0 3 4
3 1 3 4 2 0 3
4 1 1 9 2 3 3
5 1 2 3 0 3 8
6 1 3 2 1 0 4
7 1 2 5 2 2 4
8 0 1 6 3 2 7
9 1 4 4 2 1 1
10 1 2 3 3 0 3
11 2 2 10 1 0 14
12 2 2 2 2 0 1
13 0 3 5 3 0 6
14 2 1 3 2 0 5
15 0 2 5 6 1 4
16 1 2 3 0 0 5
17 0 2 7 2 2 11
18 3 2 4 1 2 5
19 0 7 5 1 0 10
20 0 3 3 1 0 6
21 1 1 5 7 5 6
22 1 0 5 3 2 5
23 3 3 3 3 0 2
24 2 0 6 4 1 7
25 0 7 1 2 1 4

新增具有相同名稱的列值並將其合併

使用 do.call 函式和 cbind 函式,新增具有 colSums 函式的列值,如下所示:

df<-
data.frame(x=rpois(25,1),y=rpois(25,2),x=rpois(25,5),z=rpois(25,2),y=rpois(25,1),z=rpoi
s(25,5),check.names=FALSE)
Merged_df<-as.data.frame(do.call(cbind,
by(t(df),INDICES=names(df),FUN=colSums)))
Merged_df

輸出

   x y z
V1 8 2 2
V2 7 5 4
V3 5 3 5
V4 10 4 5
V5 4 5 8
V6 3 3 5
V7 6 4 6
V8 6 3 10
V9 5 5 3
V10 4 2 6
V11 12 2 15
V12 4 2 3
V13 5 3 9
V14 5 1 7
V15 5 3 10
V16 4 2 5
V17 7 4 13
V18 7 4 6
V19 5 7 11
V20 3 3 7
V21 6 6 13
V22 6 2 8
V23 6 3 5
V24 8 1 11
V25 1 8 6

更新於: 14-8-2021

1K+ 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始使用
廣告