Обновление файла в R путем добавления столбца / вектора - PullRequest
0 голосов
/ 17 июня 2020

Есть ли способ обновить существующий файл .csv, добавив столбец / вектор, который я скопировал из Интернета. У меня есть веб-скребок, который извлекает данные о COVID-19, и я пытаюсь создать файл с положительными случаями в столбцах, и каждый столбец представляет собой список случаев за день в каждом округе (ось x - округа, ось y - дата ). На данный момент я обдумывал множество разных идей и, похоже, наткнулся на препятствие. Я новичок в r, поэтому любые идеи будут оценены!

Пакеты, которые я сейчас использую / планирую использовать:

библиотека (tidyverse) библиотека (funModeling) библиотека (Hmis c ) library (rvest) library (ggplot2)

КОД:

#writing the original file

positive <- data.frame(Counties= counties_list, "06/12/2020"= positive_data)
positive[is.na(positive)]= 0
positive = positive[-c(76),]
write.csv(positive, "C:/Users/Nathan May/Desktop/Research Files (ABI)/Covid/Data For 
Shiny/Positive/Positive Data.csv")


#creating the new vector and updating the existing file with it

datap <- read.csv("C:/Users/Nathan May/Desktop/Research Files (ABI)/Covid/Data For 
Shiny/Positive/Positive Data.csv")
positive_data = positive_data[-c(76),]
datap$DATE <- positive_data

ПРИМЕЧАНИЕ. Конечная цель - создать приложение ShinyApp, которое отображает гистограммы для положительных результатов, выздоровлений и смертей по дням в каждый округ. Это часть обработки данных.

1 Ответ

0 голосов
/ 17 июня 2020

Прежде всего, если вы собираетесь использовать тидиверс, используйте tibble вместо data.frame. Таблицы - это версия фреймов данных Tidyverse .

Далее, обратите внимание на структуру вашего фрейма данных. Таким образом, как вы сейчас создаете свой data.frame (а позже, вероятно, ваш тиббл), вы получаете переменную «Графства» и одну дополнительную переменную на каждый день. Это означает, что вам придется добавлять столбцы по мере прохождения времени (противоположность тому, что вы описали: перемещение по оси x (вдоль столбцов) будет перемещаться по датам, а перемещение по оси y (перемещение по строкам) будет перемещаться по округам) . Это возможно, но я считаю немного нестандартным. Возможно, вы захотите инициализировать свой фрейм данных с помощью одного столбца для каждого округа и дополнительной переменной с именем «дата». Затем всякий раз, когда вы получаете новые данные, вы можете добавить строку в свой фрейм данных вместо столбца (так что вы «добавляете новый регистр» вместо «добавляете новую переменную»).

Чтобы фактически добавить строку вам нужно будет загрузить данные, как вы это делаете в коде, создать новую строку (или столбец, если вы настаиваете), а затем «приклеить» ее к остальным данным. В зависимости от того, как выглядят ваши данные, вы можете создать фрейм данных с одной строкой, используя tibble_row() с теми же странами, что и имена переменных, которые у вас есть в основном фрейме данных, а затем склеить их вместе с add_row(datap, your_new_row). В качестве альтернативы, если вы хотите добавить строку только с использованием позиции, а не имен столбцов, вы можете использовать новую строку в качестве вектора и использовать rbind() вместо add_row.

Если вы продолжаете использовать «один переменная на дату "есть эквиваленты столбцов (add_column и cbind) для обеих этих функций.

Надеюсь, это поможет, Ура

...