Я создаю новый фрейм данных, связывая вместе два фрейма данных, полученных из двух разных репозиториев GitHub. Оба набора данных имеют столбец Дата . Когда я выполняю эту операцию на моей машине, все в порядке, и я могу использовать функции rbind()
или bind_rows()
для связывания фреймов данных.
Другой пользователь пробовал тот же код, и результат был другим. В частности, столбец Дата разделен. Даты первого информационного кадра находятся под первым столбцом (называемым Date ), в то время как даты второго информационного кадра помещаются в конце информационного кадра, в новый столбец (который я не создал) с именем XUFEFF.Date .
Ниже приведен код, который я использовал:
library(dplyr)
library(RCurl)
setwd(dir = "YOUR_WORKING_DIRECTORY")
#####===== FIRST DATAFRAME =====#####
cases <- read.csv(text = getURL(url = "https://raw.githubusercontent.com/openZH/covid_19/master/COVID19_Cases_Cantons_CH_total.csv"),
header = TRUE,
stringsAsFactors = FALSE,
na.strings = c("", "NA"),
encoding = "UTF-8")
# Removed data for whole Switzerland and Leichtenstein
cases <- subset(x = cases,
!is.element(el = canton,
set = c("CH", "FL")),
select = c("date",
"canton",
"tested_pos"))
names(cases)[1] <- "Date"
# Dataset restructured according to the cases dataset format
cases <- reshape(data = cases,
idvar = "Date",
timevar = "canton",
v.names = "tested_pos",
direction = "wide",
)
names(cases) <- gsub(pattern = "tested_pos.",
replacement = "",
x = names(cases))
cases[is.na(cases)] <- 0
cases <- cases[order(cases$Date,
decreasing = FALSE), ]
#####===== SECOND DATAFRAME =====#####
cases2 <- read.csv(text = getURL(url = "https://raw.githubusercontent.com/daenuprobst/covid19-cases-switzerland/master/covid19_cases_switzerland.csv"),
header = TRUE,
stringsAsFactors = FALSE,
na.strings = c("", "NA"),
encoding = "UTF-8")
# Remove total daily cases for Switzerland
cases2 <- subset(x = cases2,
select = -c(CH))
# rbind between two cases datasets
cases_tot <- bind_rows(cases[1:7, ],
cases2)
write.csv(x = cases_tot,
file = paste0(getwd(),
"/cases_tot.csv"),
row.names = FALSE,
quote = FALSE)
Для другого пользователя функция rbind()
просто не работает, а функция bind_rows()
производит вывод, отображаемый на этом изображении . Я не знаю, как решить эту проблему, потому что я не могу воспроизвести ее на своем компьютере.
Есть идеи о том, что является причиной этой проблемы? Большое спасибо.