在 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'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中执行脚本的循环和迭代?

来自分类Dev

R在安装过程中执行脚本/功能

来自分类Dev

如何获取R中执行脚本的目录?

来自分类Dev

在 Filezilla 中运行 R 脚本

来自分类Dev

在R中循环运行功能

来自分类常见问题

在Dockerfile中运行脚本

来自分类Dev

在Chrome中运行脚本

来自分类Dev

在 Dockerfile 中运行脚本

来自分类Dev

R:在R脚本中的列上循环功能

来自分类Dev

gzip -t循环运行脚本

来自分类Dev

bash +在循环周期中运行脚本

来自分类Dev

在R Studio中运行多个R脚本

来自分类Dev

如何从 Power BI 中的 r 脚本中运行 r 脚本?

来自分类Dev

在脚本创建的后台进程中运行脚本(带有while循环)时出错

来自分类Dev

R:通过整个脚本在for循环中运行的文件列表

来自分类Dev

在WSL Ubuntu上以Visual Studio Code(在Windows上)运行的运行脚本返回“第2行:$'\ r':找不到命令”

来自分类Dev

R脚本未在Power BI中运行

来自分类Dev

如何从R中的脚本运行featurePlot?

来自分类Dev

打印脚本在R中运行的时间

来自分类Dev

在VBA错误的目录中运行R脚本

来自分类Dev

在 Shiny 中输入后运行 R 脚本

来自分类Dev

在R中并行运行for循环

来自分类Dev

R中的For循环永远需要运行

来自分类Dev

Grails 3中的运行脚本替代

来自分类Dev

从Gradle中的构建目录运行脚本

来自分类Dev

运行脚本中的权限被拒绝

来自分类Dev

如何在WinSCP中运行脚本

来自分类Dev

Crontab在UNIX中运行脚本

来自分类Dev

从virtualenv在bash中运行脚本