r-在循环内编辑数据帧



我试图在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"只是一个将一些数据联机并生成数据帧的函数(它需要库("dataus"((。例如,在这个例子中,我得到了两个数据帧: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。我知道"assign"函数是如何工作的,至少在表面上是这样,但我不知道如何再次使用它来进行我想要进行的更改。

我已经实现了我想要的。我把它贴在这里,以防它可能会帮助其他觉得困难的人。

它是通过简单地使用一个列表来实现的。

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))
}

最新更新