在R中导入多个xlsx文件

在R中导入多个xlsx文件,r,R,我在一个目录中有几个具有相同结构的xlsx文件(即a、B、C列);每个文件都是一天的数据。 我需要导入R中的所有数据,并找出一天和下一天之间的差异 files <- list.files(pattern = ".xlsx") for (i in seq_along(files)) { assign(paste("Day", i, sep = "."), read.xlsx(files[i])) } 文件考虑在数据帧列表(天)和(天+1)之间使用基本R的映射(包装到mappy),分

我在一个目录中有几个具有相同结构的xlsx文件(即a、B、C列);每个文件都是一天的数据。 我需要导入R中的所有数据,并找出一天和下一天之间的差异

files <- list.files(pattern = ".xlsx")
for (i in seq_along(files)) {
    assign(paste("Day", i, sep = "."), read.xlsx(files[i]))
}

文件考虑在数据帧列表(天)和(天+1)之间使用基本R的
映射(包装到
mappy
),分别是
dplyr::anti_join的左侧和右侧。当然,最后一天不会有提前一天的比较

library(xlsx)
library(dplyr)

file.list <- list.files(pattern='*.xlsx')
df.list <- lapply(file.list, function(f){
    read.xlsx(f, 1, stringsAsFactors = FALSE)
})

left_days <- df.list[1:length(df.list)-1]    # SUBSET OUT LAST DAY
right_days <- df.list[2:length(df.list)]     # SUBSET OUT FIRST DAY 

# WITHOUT ARGS
anti_join_list <- Map(anti_join, left_days, right_days)

# WITH ARGS
anti_join_list <- Map(function(x,y) anti_join(x, y, by=c("B", "C")), left_days, right_days)
库(xlsx)
图书馆(dplyr)

file.list上有许多这样的例子可以正确地做到这一点(不要像python那样使用
for
循环来处理R)。你应该多考虑一下如何使用矢量化函数来生成大数据帧,然后很容易地在几天内进行分组和区分。请把所有的<代码>库< /代码>行作为几种方法,这里不是BaseR.Lable(Data .table)和库(OpenXLSX),以及<代码>库(DPLYR)< /代码>。什么包是
read\u excel
?为什么将循环的
read.xlsx
更改为
Day.[i] <- data.frame(Day.[i])
Day.[i]$A <- as.character(Day.[i]$A)
Day.[i+1] <- data.frame(Day.[i+1])
Day.[i+1]$A <- as.character(Day.[i+1]$A)
anti_join (Day.[i], Day.[i+1])
file.list <- list.files(pattern='*.xlsx')
days.list <- lapply(file.list, read_excel)
days <- rbindlist(days.list, idcol = "id")
days <- data.frame(days)
days$B <- as.character(days$B)
day1 <- filter(days, id==1)
day2 <- filter(days, id==2)
diff1 <- anti_join (day1, day2, by=c("B", "C"))
day(i) <- filter(days, id==(i))
day(i+1) <- filter(days, id==(i+1))
diff1 <- anti_join (day1, day2, by=c("B", "C"))
library(xlsx)
library(dplyr)

file.list <- list.files(pattern='*.xlsx')
df.list <- lapply(file.list, function(f){
    read.xlsx(f, 1, stringsAsFactors = FALSE)
})

left_days <- df.list[1:length(df.list)-1]    # SUBSET OUT LAST DAY
right_days <- df.list[2:length(df.list)]     # SUBSET OUT FIRST DAY 

# WITHOUT ARGS
anti_join_list <- Map(anti_join, left_days, right_days)

# WITH ARGS
anti_join_list <- Map(function(x,y) anti_join(x, y, by=c("B", "C")), left_days, right_days)