我提出了以下使用purrr包在R中创建 Dataframe 的方法:
map_df(list, `[`, c("name_1", "name_2"))
而我之前是用
list %>% map_df(~data.frame(name_1 = .x[["name_1"]], name_2 =.x[["name_2"]]))
有人能解释一下[
参数吗?或者给我介绍一下我可以使用的资源吗?谢谢
我已经检查了https://purrr.tidyverse.org/reference/map.html,但是我还没有找到任何有用的东西。list是一个包含n个元素的通用列表,每个元素包含name_1和name_2元素,它们将是我的n行数据框的列。
1条答案
按热度按时间8iwquhpp1#
[
是子集运算符,你通常会看到它是这样写的:然而,在 *R中,每个运算符都是一个函数 *,
[
也一样。要将一个运算符作为普通函数调用,需要将其反引号引起来,否则R认为它应该被操作数包围。例如:对于子集运算符,规则略有不同:它们的调用带有左括号和右括号,但运算符 name 只有左括号:
现在,由于
[
是一个函数(类似于 all 运算符,见上文),我们可以像传递其他函数一样将函数名传递给map_df
。其中
extract
将定义为或者简单地说:
(In R你可以像任何其他对象一样给新的名字赋值函数。)
由于
map_df
处理公式的方式,上面的表达式也与