如何使用dplyr';当函数返回一个列表并对数据进行分组时,s summary(跨越())
我试图将dplyr的summary(cross())与MannKendall函数(返回列表)一起使用。如果我不使用group_by(),我使用它没有问题,但是当我使用它时,我会得到一个错误。这是我的代码:如何使用dplyr';当函数返回一个列表并对数据进行分组时,s summary(跨越()),r,dplyr,R,Dplyr,我试图将dplyr的summary(cross())与MannKendall函数(返回列表)一起使用。如果我不使用group_by(),我使用它没有问题,但是当我使用它时,我会得到一个错误。这是我的代码: Preds %>% group_by(Municipality) %>% summarise(across(where(is.numeric),~list(MannKendall(.) %>%tidy %>% select(p.value, statistic)
Preds %>% group_by(Municipality) %>%
summarise(across(where(is.numeric),~list(MannKendall(.) %>%tidy %>% select(p.value, statistic)))) %>%
pivot_longer(everything()) %>%
unnest(c(value))
错误:无法组合市政
和收益
。
收益率是我的一个变量,它是数值型的
这是可行的,但不是我需要的:
Preds %>%
summarise(across(where(is.numeric),~list(MannKendall(.) %>%tidy %>% select(p.value, statistic)))) %>%
pivot_longer(everything()) %>%
unnest(c(value))
对于可复制的示例:
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), ~list(MannKendall(.) %>%tidy %>% select(p.value, statistic)))) %>%
pivot_longer(everything()) %>%
unnest(c(value))
我认为问题在于试图整理结果数据框,其中包含每列中的列表,您可以使用:
库(tidyverse)
图书馆(扫帚)
图书馆(肯德尔)
虹膜%>%
组别(种类)%>%
总结(跨越(以(“萼片”)开头)~list(
曼肯德尔(%)%>%
整洁%>%
选择(p.value,statistic)))%>%
最长(萼片长度)%>%
最长(萼片宽度)
#一个tibble:3x3
种萼片。长度$p.value$统计萼片。宽度$p.value$统计
1 setosa 0.926-0.0102 0.920-0.0111
2花色0.0753-0.178 0.400-0.0859
3弗吉尼亚州0.750-0.0326 0.226 0.124
请展示一个可复制的小示例如果您提供了一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案,则会更容易为您提供帮助。谢谢!我意识到问题出在整洁的部分。这在Preds%%>%groupby(市政当局)%%>%summary(在(where.numeric)中,~list(MannKendall)())中起作用,因此只需“整理”结果数据框,其中所有列都包含列表。谢谢!这正是我需要的