Редактирование кадра данных внутри цикла - PullRequest
0 голосов
/ 08 ноября 2018

Я стремлюсь реализовать цикл внутри 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 внутри цикла. Я понял, как работает функция «назначить», по крайней мере, поверхностно, но я не понимаю, как я могу использовать ее снова, чтобы внести изменения, которые я хочу сделать.

1 Ответ

0 голосов
/ 08 ноября 2018

Мне удалось добиться того, чего я хотел. Я публикую это здесь на случай, если это может помочь другим людям, которые находят это трудным.

Это было достигнуто простым использованием списка.

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))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...