Я написал скрипт, который извлекает 2 значения двух разных серверов из URL-адреса Json и добавляет его в CSV-файл.Затем я добавил оператор if, чтобы проверить, является ли последнее значение, введенное в конкретном столбце файла CSV (который имеет 4 столбца: «HogMapName», «HogGMode», «SomosMapName», «SomosGMode»), одинаковым или нет, и если не одинаковымЗатем он записывает в тот же CSV-файл.
Мой первый вопрос заключается в том, как мне обновить этот код, когда указанные данные сервера (MapName, GameMode), полученные из URL-адреса json, поступают на соответствующий сервер с именем столбца в файле CSV.(например, Hog_data (MapName, GameMode) сохраняется в разделе «HogMapName» и «HogGMode» в файле csv).Вот код:
prspydata <- read_csv("prspydata.csv")
pr <- fromJSON("https://www.realitymod.com/prspy/json/serverdata.json? 1548630687630")
mapname_gamemode <- function(server_name){# takes ServerName as input and returns MapName and GameMode values from json data
i <- pr$Data$ServerName == server_name
return(list(pr$Data$MapName[i],pr$Data$GameMode[i]))
}
#store data of two different servers in data.frame(MapName, GameMode) by calling out mapname_gamemode()
Hog_data <- data.frame(mapname_gamemode("[PR v1.5.5.2] =HOG= Mixed Maps")[[1]],mapname_gamemode("[PR v1.5.5.2] =HOG= Mixed Maps")[[2]] )
Somos_data <- data.frame(mapname_gamemode("[PR v1.5.5.2] =SF= [Somos Fortes Brasil]")[[1]], mapname_gamemode("[PR v1.5.5.2] =SF= [Somos Fortes Brasil]")[[2]])
# write only if new mapname is not same as last
if(mapname_gamemode("[PR v1.5.5.2] =HOG= Mixed Maps")[[1]]!= tail(prspydata$HogMapName,1)){# checks if last element in mentioned column is same
write.table(Hog_data, file = "prspydata.csv", append = TRUE, row.names = FALSE, col.names = !file.exists("prspydata.csv"), sep = ",")
}
if(mapname_gamemode("[PR v1.5.5.2] =SF= [Somos Fortes Brasil]")[[1]] != tail(prspydata$HogMapName,1)){# checks if last element in mentioned column is same
write.table(Somos_data, file = "prspydata.csv", append = TRUE, row.names = FALSE, col.names = !file.exists("prspydata.csv"), sep = ",")
}
Вот изображение файла CSV, которое показывает, как я хочу добавить данные
Второй вопрос: Как вы можете видеть на картинкеВыше «if-инструкции» записывает пустую ячейку для одного из серверов, который не проходит через условие if (т.е., если последнее введенное значение в определенном столбце совпадает).Есть ли способ добавить данные, не оставляя пустых ячеек между ними?или я должен хранить разные данные сервера в двух разных файлах CSV?Заранее спасибо!