我有一个Excel文件,包含131张表格,所有表格都包含相同格式的数据。每张表格包含一个站点的数据,并以该编号和名称命名。下面是第13号站点的一张表格的示例:
(13) stationName
到目前为止,我一张一张地读,例如
data13 <- read_excel("mydata.xlsx", n_max = 65, skip = 1, sheet = 7)
每张表中有52个变量的数据,我通过选择所需的列来收集这些数据。
ID111 <- data13[c(1:9)]
ID112 <- data13[c(1,10:17)]
ID113 <- data13[c(1,18:25)]
ID114 <- data13[c(1,26:33)]
ID115 <- data13[c(1,34:41)]
ID123 <- data13[c(1,42:49)]
ID122 <- data13[c(1,50:57)]
etc.
然后将它们放入列表中
datasets <- list(ID111, ID112, ID113, ID114, ID115, ID123, ID122)
names(datasets) <- c(111, 112, 113, 114, 115, 123, 122)
然后我用
station13 <- map_dfr(datasets, ~ .x %>%
setNames( c("Year", "MS", "UL", "JS", "BF", "FF", "RF", "CL", "FL")) %>%
pivot_longer(cols = "MS":"FL",
names_to = "Phase",
values_to = "DOY"
), .id = 'Species') %>%
relocate(Species, .after = 'Year')
station13$StationID <- "13"
在最后,我将使用rbind()将所有 Dataframe 合并到一个文件中,使所有excel工作表中的所有数据都包含在一个文件中。
到目前为止,我确实为每个站复制粘贴了它,并手动更改了站号。有没有办法让这更有效率?
1条答案
按热度按时间2vuwiymt1#
您可以使用
lapply
将所有工作表直接读入一个列表(然后对列表执行所需的任何操作),而不是手动阅读131个工作表中的每一个工作表您可以使用重命名