【发布时间】:2020-11-04 19:31:20
【问题描述】:
你可以下载下面的数据集,这些数据集有共同的 colnames Long/Lat
downloadGithubData <- function() {
download.file(
url = "https://github.com/CSSEGISandData/COVID-19/archive/master.zip",
destfile = "data/covid19_data.zip"
)
data_path <- "COVID-19-master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_"
unzip(
zipfile = "data/covid19_data.zip",
files = paste0(data_path, c("confirmed_global.csv", "deaths_global.csv", "recovered_global.csv", "confirmed_US.csv", "deaths_US.csv")),
exdir = "data",
junkpaths = T
)
}
updateData <- function() {
# Download data from Johns Hopkins (https://github.com/CSSEGISandData/COVID-19) if the data is older than 0.5h
if (!dir_exists("data")) {
dir.create('data')
downloadGithubData()
} else if ((!file.exists("data/covid19_data.zip")) || (as.double(Sys.time() - file_info("data/covid19_data.zip")$change_time, units = "hours") > 0.5)) {
downloadGithubData()
}
}
# Update with start of app
updateData()
#TODO: Still throws a warning but works for now
#DATASETS#
data_confirmed <- read_csv("data/time_series_covid19_confirmed_global.csv")
data_deceased <- read_csv("data/time_series_covid19_deaths_global.csv")
data_recovered <- read_csv("data/time_series_covid19_recovered_global.csv")
data_confirmed_us <- read_csv("data/time_series_covid19_confirmed_US.csv")
data_deceased_us <- read_csv("data/time_series_covid19_deaths_US.csv")
使用 for 循环我想将所有数据集的所有列名更改为 'longitude' 和 'latitude'
colnames(data_confirmed)[colnames(data_confirmed) == 'Long'] <- 'longitude'
colnames(data_confirmed)[colnames(data_confirmed) == 'Lat'] <- 'latitude'
任何帮助将不胜感激, 非常感谢,
【问题讨论】:
-
必须是循环吗?我会将所有数据框粘贴到一个列表中,并将
lapply与匿名函数一起使用。 -
lappy 也可以
-
应该这样做:列出所有数据帧(例如,df_list)然后
new_df_list <- lapply(df_list, function(x){ colnames(x)[colnames(x) == 'Long'] <- 'longitude' colnames(x)[colnames(x) == 'Lat'] <- 'latitude' x })这会在复制时有点奇怪,在第一个“{”之后放置中断, "经度" 和 "纬度" :)
标签: r function for-loop data-manipulation