【发布时间】:2021-07-27 02:29:04
【问题描述】:
我正在寻找一种简单的方法来对数据的子集以及对整个数据执行函数。到目前为止,代码设置为仅对数据的子集运行函数(子集按单位完成,例如美元、欧元等)。目标是在按单元子集的数据上运行该函数,但也在整个数据上运行该函数。我尝试修改的函数示例如下:
Country_freq_unit<-function(ind_unit){
rm(H1,H2,H3,H4)
H1<-data1 %>%
filter(unit==ind_unit) %>%
drop_na(data) %>%
group_by(country_name, time_date) %>%
tally()
H2<-data1 %>%
select(country_name, time_date) %>%
group_by(country_name, time_date) %>%
tally() %>%
select(country_name, time_date)
H3<-full_join(H2, H1) %>%
replace_na(list(n = 0))
H4<-H3 %>%
spread(key='time_date', value='n')
return(H4)
}
然后我在一个循环中执行该函数,该循环遍历我的数据中可用的所有单元。
unitlist<-unique(data$unit)
> unitlist
[1] "USD" "OZT" "XDR" "RATE" "WK"
for (s in unitlist) {
J1 = Country_freq_unit(s)
}
这部分一切正常,我的问题是是否有一种简单的方法可以向我的循环添加一个选项,以便在整个数据帧而不是数据帧的子集上执行该函数。我想知道在这种情况下是否有类似 all_of() 或everything() 的东西。
请注意,我实际上并没有在函数中编写代码(我只是帮助将函数和循环添加到现有代码中)。
感谢您的帮助!
【问题讨论】:
-
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。