【问题标题】:Editing dataframe inside loop在循环内编辑数据框
【发布时间】:2018-11-08 03:32:20
【问题描述】:

我试图在 R 中实现一个循环来检索一系列数据帧。此外,我想编辑循环内的数据框以整理数据并将其设置为面板数据格式。

所以,我使用 assign 能够在循环内分配名称,这样我得到了:

for(i in 1:2){
    assign(paste("df", i, sep = ""), sim_inf10_mun(linha = "Município", coluna = "Ano do Óbito", periodo = c(1996:2016), municipio = "all", 
        capitulo_cid10 = i))
}

sim_inf10_mun”只是一个函数,它在线获取一些数据并制作数据框(它需要库(“datasus”))。例如,在这个例子中,我得到了两个数据帧:df1 和 df2。

我想在数据框中进行以下更改,例如 df1,

df1 <- df1[-1,]
df1 <- df1[,-ncol(df1)]
df1 <- gather(df1, "ano", "deaths_1", 2:ncol(df1)) 
names(df1)[1]<-"cod_mun"
df1 <- transform(df1, cod_mun = substr(cod_mun, 1, 6))

这些是涉及变量名称、删除一些行、一些列等的简单更改。

但是,我不知道如何在循环内调用 df1。我了解“分配”功能的工作原理,至少表面上是这样,但我不知道如何再次使用它来进行我想做的更改。

【问题讨论】:

    标签: r loops dataframe


    【解决方案1】:

    我已经成功实现了我想要的。我把它贴在这里,以防它可以帮助其他遇到困难的人。

    这是通过简单地使用列表来实现的。

    data_list <- list()
    
    for(i in 1:22){
    data_list[[i]] <- sim_inf10_mun(linha = "Município", coluna = "Ano do Óbito", periodo = c(1996:2016), municipio = "all", 
                            capitulo_cid10 = i)
    data_list[[i]] <- data.frame(data_list[i])
    data_list[[i]] <- data_list[[i]][-1,]
    data_list[[i]] <- data_list[[i]][,-ncol(data_list[[i]])]
    data_list[[i]] <- gather(data_list[[i]], "ano", "deaths_1", 2:ncol(data_list[[i]])) 
    names(data_list[[i]])[1]<-"cod_mun"
    data_list[[i]] <- transform(data_list[[i]], cod_mun = substr(cod_mun, 1, 6))
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2019-06-18
      相关资源
      最近更新 更多