gpt4 book ai didi

r - 为什么在数据框列表上使用管道和 map 会失败?

转载 作者:行者123 更新时间:2023-12-04 18:57:51 24 4
gpt4 key购买 nike

我也有一个嵌套在带有标识符列的列表中的小标题。我想在每个嵌套的 tibble 上运行匿名函数。但是,当我使用管道引用我的主 df 然后引用包含我的数据映射的列表时,它不起作用。

# Creating the df
df_nested <- iris %>% group_by(Species) %>% nest()

# Does not work
# df_nested %>%
# map(data, nrow)

# Works
map(df_nested$data, nrow)

我想了解为什么代码不能使用管道工作。

最佳答案

这是因为当使用管道( %>% )时,第一个参数默认从 LHS 传递。

当你在做

df_nested %>% map(data, nrow)

你得到
#$Species
#[1] ".x[[i]]" "nrow"

#$data
#[1] ".x[[i]]" "nrow"

#Warning messages:
#1: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
#2: In .f(.x[[i]], ...) : data set ‘nrow’ not found
#3: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
#4: In .f(.x[[i]], ...) : data set ‘nrow’ not found

这与
map(df_nested, data, nrow)

如果你想使用管道,你可能需要
df_nested$data %>% map(nrow)

#[[1]]
#[1] 50

#[[2]]
#[1] 50

#[[3]]
#[1] 50

关于r - 为什么在数据框列表上使用管道和 map 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com