如何將手動建立的函式應用到 R 資料框中的兩列?
假設我們建立了一個函式,一次可以接受兩個不同的值,那麼我們可以使用 mapply 將該函式應用到 R 資料框的兩列。例如,如果我們有一個手動建立的函式(稱為 func),用於乘以兩個值,那麼我們可以透過使用以下命令將其應用到一個名為 df 的資料框中,該資料框有兩列 x 和 y −
mapply(func,df$x,df$y)
Manually created function named as func:
func <-function(x,y){z<-x*y
return(z)
}示例 1
考慮以下資料框 −
> x1<-rpois(20,5) > x2<-rpois(20,5) > df1<-data.frame(x1,x2) > df1
輸出
x1 x2 1 3 8 2 7 5 3 3 6 4 1 5 5 7 8 6 5 5 7 2 2 8 6 8 9 4 4 10 4 7 11 5 6 12 1 7 13 3 8 14 5 6 15 5 6 16 5 5 17 6 2 18 8 3 19 3 3 20 4 3
將 func 應用於 df1 的列 x1 和 x2 −
> mapply(func,df1$x1,df1$x2)
輸出
[1] 24 35 18 5 56 25 4 48 16 28 30 7 24 30 30 25 12 24 9 12
示例 2
> y1<-round(rnorm(20),2) > y2<-round(rnorm(20),2) > df2<-data.frame(y1,y2) > df2
輸出
y1 y2 1 0.35 1.30 2 -1.67 -1.11 3 0.39 -1.03 4 -1.09 0.60 5 0.05 -0.03 6 0.08 0.60 7 0.47 -0.71 8 2.01 0.33 9 -1.27 0.46 10 0.47 -0.52 11 0.51 1.80 12 -1.14 0.58 13 0.36 -0.59 14 -1.26 0.71 15 -1.13 -0.85 16 -0.66 0.26 17 -0.69 1.00 18 0.01 0.00 19 -1.48 0.72 20 0.70 -0.51
將 func 應用於 df2 的列 y1 和 y2 −
> mapply(func,df2$y1,df2$y2)
輸出
[1] 0.4550 1.8537 -0.4017 -0.6540 -0.0015 0.0480 -0.3337 0.6633 -0.5842 [10] -0.2444 0.9180 -0.6612 -0.2124 -0.8946 0.9605 -0.1716 -0.6900 0.0000 [19] -1.0656 -0.3570
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP