Пытаетесь создать новый столбец с именем цикла данных через цикл for? - PullRequest
0 голосов
/ 24 августа 2018

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

schema <- "x"
table_prefix <- "results_"
geos <- district %>% filter(geo != "geo")

for (geo in geos){
  tables <- paste0(schema, ".", table_prefix, geo)
  queries <-   paste("SELECT * FROM", tables)
}


i = 1
df_list <- list()
for (x in queries){
  name <- substr(x, 40, nchar(x))
  df_list[i] <- name
  assign(name, dbGetQuery(con, x))
  i = i + 1
}

dfs <- lapply(df_list, get)

i = 1
for (x in dfs){
  x$geo <- df_list[i]
  i = i + 1
} 


full_df <- do.call(rbind, dfs)

Это заканчивается тем, что я получаю новый фрейм данных с именем 'x', в котором содержится содержимое последнего фрейма данных в моем списке с новым столбцом, который я хочу. Как я могу получить его, чтобы все кадры данных получили новый столбец с их именем?

1 Ответ

0 голосов
/ 24 августа 2018

Попробуйте это:

for (i in 1:length(dfs)){
  dfs[[i]]$geo <- df_list[i]
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...