如何在 r 中使用 map() 函数(附示例)
R 中purrr包的map()函数可用于将函数应用于向量或列表的每个元素,并相应地返回列表。
该函数使用以下基本语法:
地图(.x,.f)
金子:
- .x :向量或列表
- .f :一个函数
以下示例展示了如何在不同场景下使用该功能。
示例1:使用map()生成随机变量
下面的代码展示了如何使用map()函数生成三个随机变量,每个变量包含五个遵循标准正态分布的值:
library (purrr)
#definevector
data <- 1:3
#apply rnorm() function to each value in vector
data %>%
map( function (x) rnorm(5, x))
[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672
[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801
[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040
对于原始向量的每个元素, map()函数应用rnorm()函数从标准正态分布生成五个随机值。
示例2:使用map()将每个值转换为向量
下面的代码展示了如何使用map()函数来计算向量中每个值的平方:
library (purrr)
#definevector
data <- c(2, 4, 10, 15, 20)
#calculate square of each value in the vector
data %>%
map( function (x) x^2)
[[1]]
[1] 4
[[2]]
[1] 16
[[3]]
[1] 100
[[4]]
[1] 225
[[5]]
[1] 400
对于原始向量的每个元素, map()函数应用一个计算每个值的平方的函数。
示例3:使用map()计算列表中每个向量的平均值
下面的代码展示了如何使用map()函数来计算列表中每个向量的平均值:
library (purrr)
#define list of vectors
data <- list(c(1, 2, 3),
c(4, 5, 6),
c(7, 8, NA))
#calculate mean value of each vector in list
data %>%
map(mean, na. rm = TRUE )
[[1]]
[1] 2
[[2]]
[1] 5
[[3]]
[1] 7.5
对于列表中的每个向量, map()函数计算平均值。
从结果我们可以看出:
- 列表中第一个向量的平均值是2 。
- 列表中第二个向量的平均值是5 。
- 列表中第三个向量的平均值是7.5 。
注意:参数na.rm=TRUE告诉 R 在计算平均值时忽略 NA 值。
其他资源
以下教程解释了如何使用 R 中的其他常用函数:
如何在 R 中使用 tapply() 函数
如何在 R 中使用 dim() 函数
如何在 R 中使用 table() 函数
如何在R中使用sign()函数