R语言中purrr包中的map函数的使用

R语言中purrr包中的map函数的使用

参考文章:

https://bookdown.org/wangminjie/R4DS/tidyverse-purrr.html

语法

map()函数的第一个参数是list或者vector, 第二个参数是函数。

注意这里的第一个传参,数据框是列表的一种特殊形式,因此数据框也是可以的。

测试

map对列操作:

d变量的内容为:

> d
    x  y
1  10  1
2   9  2
3   8  3
4   7  4
5   6  5
6   5  6
7   4  7
8   3  8
9   2  9
10  1 10

测试代码:

d <- data.frame(x = 10:1, y = 1:10)


d.mean = map_df(d, mean)

d.mean = d %>% 
    map_df(mean)

print(d.mean)

输出:

# A tibble: 1 × 2
      x     y
  <dbl> <dbl>
1   5.5   5.5

map的不同形式可返回不同的类型

img

对行进行操作使用 pmap

上面的map测试是对列进行操作的,那如何进行 行 操作呢?pmap!!!

pmap的测试:

df <- data.frame(x = 1:3, y = 4:6)

df.sum = pmap(df, function(x, y) return (x + y))

# df.sum = pmap(df, ~ ..1 + ..2)

返回值输出 -- 返回的是 list 类型:

> df.sum
[[1]]
[1] 5

[[2]]
[1] 7

[[3]]
[1] 9
posted @ 2023-10-07 09:23  仗剑天涯横刀笑  阅读(357)  评论(0)    收藏  举报