對儲存在列表中的 R 資料框的行應用數學運算。


要對儲存在列表中的 R 資料框的行應用乘法、除法、減法和加法等數學運算,我們可以使用 apply 函式。

例如,如果我們有一個名為 LIST 的列表,其中包含一個名為 df 的資料框,該資料框有兩個列,例如 X 和 Y,並且我們想要新增 df 的行,那麼我們可以使用下面提到的命令:

apply(df,1,function(x) x["X"]+x["Y"])

請檢視下面給出的示例,以瞭解如何完成此操作。

示例

以下程式碼片段建立了示例資料框:

x1<-rnorm(20)
y1<-rnorm(20)
df1<-data.frame(x1,y1)
x2<-rpois(20,5)
y2<-rpois(20,5)
df2<-data.frame(x2,y2)
List<-list(df1,df2)
List

這些資料框的列表如下:

[[1]]
          x1         y1
 1 -1.5731993  0.11244718
 2 -1.9456438  0.20793065
 3  0.6984799  1.21806315
 4 -0.9044348  1.15796145
 5 -1.3220205  1.51746076
 6 -2.4595593  1.19932839
 7  0.7052369  0.46857422
 8  0.2257025  1.19549664
 9  1.7703144 -0.90544795
10 -1.1280562  1.19661179
11  1.3450602  1.08065271
12 -0.4960736  0.82348313
13  0.2703035 -0.89962056
14  1.6588146  0.01264785
15  0.9652318  0.70363607
16 -1.6510901  1.53432591
17 -0.5948874  0.46737082
18 -0.3386917 -0.01119323
19  0.6576946  0.14457605
20  0.5898998 -1.75455914

[[2]]
  x2 y2
 1 9  5
 2 3  4
 3 10 6
 4 2  2
 5 7  1
 6 2  6
 7 3  4
 8 4  5
 9 6  9
10 2  6
11 6  9
12 4  5
13 2  5
14 3  4
15 6  4
16 3 12
17 8  6
18 8  3
19 4  4
20 3  4

要將上面建立的資料框中 df1 的每一行的 x1 中的行值除以 y1,請將以下程式碼新增到上面的程式碼片段中:

x1<-rnorm(20)
y1<-rnorm(20)
df1<-data.frame(x1,y1)
x2<-rpois(20,5)
y2<-rpois(20,5)
df2<-data.frame(x2,y2)
List<-list(df1,df2)
apply(df1,1,function(x) x["x1"]/x["y1"])

輸出

如果將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

 [1] -13.9905627 -9.3571763   0.5734349 -0.7810578 -0.8712057 -2.0507805
 [7]  1.5050697   0.1887939  -1.9551808 -0.9427085  1.2446739 -0.6024089
[13] -0.3004639   131.1538482 1.3717771 -1.0761013 -1.2728382  30.2586086
[19]  4.5491260  -0.3362097

要將上面建立的資料框中 df2 的每一行的 x2 中的行值乘以 y2,請將以下程式碼新增到上面的程式碼片段中:

x1<-rnorm(20)
y1<-rnorm(20)
df1<-data.frame(x1,y1)
x2<-rpois(20,5)
y2<-rpois(20,5)
df2<-data.frame(x2,y2)
List<-list(df1,df2)
apply(df2,1,function(x) x["x2"]*x["y2"])

輸出

如果將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

[1] 45 12 60 4 7 12 12 20 54 12 54 20 10 12 24 36 48 24 16 12

更新於: 2021-11-09

1K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.