r - 在 r 中循环运行脚本
问题描述
我需要为每个站点运行一个脚本(我在脚本中将数字 1 替换为 1),但是有 100 多个站点。
我想也许脚本中的循环可以节省我的时间。以前从未做过循环,不知道是否可以做我想做的事。我已经尝试过如下方式,但不起作用。
只是我的一些 df8 数据(txt):
RowNum,date,code,gauging_station,precp
1,01/01/2008 01:00,1586,315,0.4
2,01/01/2008 01:00,10990,16589,0.2
3,01/01/2008 01:00,17221,30523,0.6
4,01/01/2008 01:00,34592,17344,0
5,01/01/2008 01:00,38131,373,0
6,01/01/2008 01:00,44287,370,0
7,01/01/2008 01:00,53903,17314,0.4
8,01/01/2008 01:00,56005,16596,0
9,01/01/2008 01:00,56349,342,0
10,01/01/2008 01:00,57294,346,0
11,01/01/2008 01:00,64423,533,0
12,01/01/2008 01:00,75266,513,0
13,01/01/2008 01:00,96514,19187,0
代码:
station <- sample(50:150,53,replace=F)
for(i in station)
{
df08_1 <- filter(df08, V7==station [i])
colnames(df08_1) <- c("Date","gauging_station", "code", "precp")
df08_1 <- unique(df08_1)
final <- df08_1 %>%
group_by(Date=floor_date(Date, "1 hour"), gauging_station, code) %>%
summarize(precp=sum(precp))
write.csv(final,file="../station [i].csv", row.names = FALSE)
}
解决方案
如果您不反对使用某些tidyverse
软件包,我认为您可以简化一下:
使用您的新示例数据更新 - 这在我的计算机上运行正常:
代码:
library(dplyr)
dat %>%
select(-RowNum) %>%
distinct() %>%
group_by(date_hour = lubridate::floor_date(date, 'hour'), gauging_station, code) %>%
summarize(precp = sum(precp)) %>%
split(.$gauging_station) %>%
purrr::map(~write.csv(.x,
file = paste0('../',.x$gauging_station, '.csv'),
row.names = FALSE))
数据:
dat <- data.table::fread("RowNum,date,code,gauging_station,precp
1,01/01/2008 01:00,1586,315,0.4
2,01/01/2008 01:00,10990,16589,0.2
3,01/01/2008 01:00,17221,30523,0.6
4,01/01/2008 01:00,34592,17344,0
5,01/01/2008 01:00,38131,373,0
6,01/01/2008 01:00,44287,370,0
7,01/01/2008 01:00,53903,17314,0.4
8,01/01/2008 01:00,56005,16596,0
9,01/01/2008 01:00,56349,342,0
10,01/01/2008 01:00,57294,346,0
11,01/01/2008 01:00,64423,533,0
12,01/01/2008 01:00,75266,513,0
13,01/01/2008 01:00,96514,19187,0") %>%
mutate(date = as.POSIXct(date, format = '%m/%d/%Y %H:%M'))
推荐阅读
- android - 如何在设备尺寸变化时重建 Flutter 小部件,在 Android 应用中 Flutter View 的发布模式下?
- javascript - JS函数在执行后的特定时间内自禁用
- java - 无法创建 android 架构组件 AndroidViewModel 实例。尝试制作一个简单的 Room DB
- java - 使用一份 Jasper 报告生成 2 个文档
- html - UI-选择默认占位符而不是可以更改
- python-3.x - DNS 查询未指定或太小
- c++ - 无法使用基类右值初始化指向子类的指针
- xml - Haskell - 如何将 XML 响应解析为 Haskell 数据类型?
- node.js - 不能在异步函数上调用 nodeify 但可以调用 then()
- android - ScrollView 内的 ConstraintLayout,constraintHeight_percent 中断滚动