如何解决我需要在使用map2的函数中嵌套列表吗?
这似乎很愚蠢,或者答案就在我的鼻子前面,但是我不确定如何使此功能正常运行。
我想编写一个名为loop
的函数,该函数将一个数据帧df
进行分组拆分,然后在每个这些数据帧中运行一个称为test
的函数
另一方面,test
将数据集df
和行索引i
作为其参数,并返回一个列表。
为便于说明,请假设:
test <- function(i,df){
df$V2[1:i]
}
然后,loop
会执行其他一些与该问题无关紧要的事情。
这是我尝试做的事情:
loop1 <- function(df){
df1 <- df %>%
group_split(UF)
x <- df1 %>%
map(~ .x %>%
nrow() %>%
seq())
z <- map2(x,df1,~ .x %>% map(~ .x %>% test(df = .y)))
return(z)
}
如果我只对一个数据帧test
运行d
,我会做map(1:nrow(df),~ test(.,df = d))
很遗憾,我的函数loop1
无法正常工作。如何调整它,使其针对test
中每个数据集的每一行运行df1
?
这里是一个例子:
df <- data.frame(UF = c(1,1,2,3,4,4),V2 = 1:8)
结果是什么?
list(list(1,1:2),list(3,3:4),list(5),list(6,6:7,6:8)
)
解决方法
在这一行
compileSdkVersion 28
targetSdkVersion 28
的范围/用途令人困惑。使用匿名函数清除范围,或在代码中进行最少更改的情况下检查以下函数。
z <- map2(x,df1,~ .x %>% map(~ .x %>% test(df = .y)))
返回:
.x
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。