如何将手动创建的函数应用到 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

更新于: 06-Mar-2021

608 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始
广告