如何解决对找到的每一年执行数据操作
我有一个数据框,其中列出了国家关系和相关年份。我已经创建了一组我希望每年执行的操作,但目前正在单独执行 1 年。
有没有办法创建某种循环或迭代,从最低年份开始,执行所有操作,然后递增到下一年并重复到最后?
下面是我的 DF 的示例,我希望对标有 2017 的所有行执行计算,写出到 .csv(以年份命名),然后对标有 2018 的所有行重复该过程.
所以对于最终结果,我希望有多个 .csvs 标记为类似 Output2017.csv、Output2018.csv 等
解决方法
当然,假设您有一个函数 foo(df)
,它接受一个数据帧 df
,并对其进行处理以产生您想要的输出。
然后你就可以了
list_of_dfs_by_year <- split(data,data$Year)
创建一个命名的数据框列表,按年份分组。然后你可以打电话
lapply(list_of_dfs_by_year,foo)
,
你可以用 dplyr 试试这个:
> df <- tibble(country = letters[1:11],year = 2000:2010)
> seqns <- df %>% group_by(year) %>% arrange(year) %>% select(year)
> seqns <- seqns$year
> for (y in seqns) {
+ print(df %>% filter(year == y))
+ }
# A tibble: 1 x 2
country year
<chr> <int>
1 a 2000
# A tibble: 1 x 2
country year
<chr> <int>
1 b 2001
# A tibble: 1 x 2
country year
<chr> <int>
1 c 2002
# A tibble: 1 x 2
country year
<chr> <int>
1 d 2003
# A tibble: 1 x 2
country year
<chr> <int>
1 e 2004
# A tibble: 1 x 2
country year
<chr> <int>
1 f 2005
...
然后采取相应的动作保存在csv中。
查看更多详情here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。