Как добавить фреймы данных одного столбца к пустым столбцам на листе файла xlsx в R? - PullRequest
0 голосов
/ 22 апреля 2020

Я хотел бы автоматически запускать сценарий ежедневно, в котором я добавляю фреймы данных в один столбец к существующим таблицам в определенных таблицах файлов xlsx. У меня есть файл xlsx, который содержит эпидемиологические данные о распространении и серьезности COVID-19 в Нидерландах. Поскольку веб-сайт, который я ежедневно прочесываю, публикует только информацию о текущем состоянии, я сам создаю фреймы данных с тенденциями. Каждый день я хочу добавить один столбец данных в таблицу, содержащую ежедневные сводные обновления о количестве людей, инфицированных COVID-19. Этот фрейм данных необходимо добавить в конец таблицы в первом пустом столбце. Я попробовал этот код:

addDataFrame (Meldingen, лист = 'Meldingen', имена столбцов = F, row.names = F, startRow = 1, startColumn = 10)

Но этот код перезаписывает данные в файле xlsx вместо добавления их в таблицу на рабочем листе. Кто-нибудь может мне помочь? Спасибо.

1 Ответ

0 голосов
/ 22 апреля 2020

Цитаты в вашей формуле "Мелдинген" не помогут. Вы можете попробовать что-то вроде этого (пример с набором данных радужной оболочки). Чтобы понять этот процесс, подготовьте файл .xlsx с именем «COVID19» с листом «Meldingen», содержащим 10 строк случайных данных (начиная с A1) и необходимое количество столбцов (без заголовков). 10 первых строк последнего столбца набора данных iris будут добавлены в файл (в первом пустом столбце).

# Open the source .xlsx file (the receiver of the data)
source=read.xlsx("COVID19.xlsx","Meldingen",header = FALSE)

# Get the last computed column of the df which has to be added to the .xlsx file
data=as.data.frame(iris[1:10,ncol(iris)])

# Create the workbook and the sheet (even if they already exist)
wb = createWorkbook()
sheet = createSheet(wb, "Meldingen")

# Get information about the existing sheet (the first empty column)
i=dim(source)[2]+1

# Add the data from the source .xlsx file
addDataFrame(source, sheet=sheet, row.names=FALSE, col.names =FALSE,  startRow = 1)
# Add the data from the R df
addDataFrame(data, sheet=sheet, row.names=FALSE, col.names =FALSE,  startRow = 1, startColumn = i)

# Overwrite the existing file
saveWorkbook(wb, "COVID19.xlsx")

Заменить data=as.data.frame(iris[1:10,ncol(iris)]) на data=as.data.frame(Meldingen[,ncol(iris)]), предполагая, что "Meldingen" - это имя вашего фрейма данных в R.

...