r-我有三个过去三年的图书馆数据集.我想用这些数据集制作一个新的数据帧



在过去的3年里,我有三个ontario库的数据集。数据集包含关于图书馆、地址、城市、持卡人等的各种信息。我创建了一个数据集,将所有数据集合并为一个新的数据集,称为数据组合。


like so
data_2017<- read.csv("Downloads/2017.csv")
data_2016<- read.csv("Downloads/2016.csv")
data_2015<- read.csv("Downloads/2015.csv")
common_columns <- Reduce(intersect, list(colnames(data_2017), colnames(data_2016),colnames(data_2015)))
data_combined <- rbind(
subset(data_2017, select = common_columns),
subset(data_2016, select = common_columns),
subset(data_2015, select = common_columns)
)
write.csv(data_combined, "Downloads.csv")

我需要帮助的是,我需要编写一系列代码,创建一个单独的数据集,用于输出一个表,列出过去3年每个城市的图书馆数量。在excel中,我会使用计数函数来查看每个城市的图书馆数量。。。以创建新表。我需要在R中获得相应的帮助。我想制作一个新的表格,在行标题上有城市名称,列将是2015年、2016年和2017年每年图书馆的总和。我想制作一个新的数据帧,如下所示:而不是1999年、2000年和2001年。我想说的是2015年、2016年和2017年

这里是你可以找到2015年、2016年和2017年的数据集的地方。。仅使用2015、2016和2017

感谢

这听起来像是按组计算平均值以按组汇总,然后将多个值列重塑为宽格式以从长到宽。然而,由于某些数据有逗号,将它们呈现为character而不是numeric,因此对它们进行rbinding将是有问题的。这是一根管子,可以处理所有这些。

我已经将这三个文件下载到我的~/Downloads/目录,然后是

library(dplyr)
alldat <- lapply(grep("ontario", list.files("~/Downloads/", full.names=TRUE), value = TRUE), read.csv)
common_columns <- Reduce(intersect, sapply(alldat, names))
data_combined <- alldat %>%
lapply(function(dat) as.data.frame(
lapply(dat, function(z) if (all(grepl("^[0-9.,]*$", z))) type.convert(gsub(",", "", z), as.is = TRUE) else z)
)) %>%
lapply(subset, select = common_columns) %>%
bind_rows() %>%
tibble() %>%
count(City = A1.10.City.Town, Year = Survey.Year.From) %>%
tidyr::pivot_wider(City, names_from = Year, values_from = n)
data_combined
# # A tibble: 336 x 4
#    City         `2015` `2016` `2017`
#    <chr>         <int>  <int>  <int>
#  1 Addison           1      1      1
#  2 Ajax              1      1      1
#  3 Alderville        1      1      1
#  4 Algoma Mills      1      1      1
#  5 Alliston          2      2      2
#  6 Almonte           1      1      1
#  7 Amaranth          1      1      1
#  8 Angus             1      1      1
#  9 Apsley            1      1      1
# 10 Arnprior          2      2      2
# # ... with 326 more rows

最新更新