从Excel文件中绑定多个df

我目前正在将来自多个Excel文件的数据合并到一个df中。问题是,文件中的列数不同(由于实验版本不同),因此我只需要绑定每个文件中的某些列/变量(它们具有相同的名称)。

我最初尝试使用以下方法“手动”进行操作:

library(openxlsx)
PWI <- read.xlsx("/Users/myname/Desktop/PrelimPWI/PWI_1_V1A.xlsx",colNames = TRUE,startRow = 2)
Slim_1 <- data.frame(PWI$Subject,PWI$Block,PWI$Category,PWI$Trial,PWI$prompt1.RT)
#read in and pull out variables of interest for one subject
mergedFullData = merge(mergedDataA,mergedDataB) 
#add two together,then add the third to the merged file,add 4th to that merged file,etc

显然,似乎有一种更简单的方法来组合文件。我一直在使用:

library(openxlsx)

path <- "/Users/myname/Desktop/PrelimPWI"
merge_file_name <- "/Users/myname/Desktop/PrelimPWI/merge_file_name.xlsx"

filenames_list <- list.files(path= path,full.names=TRUE)

All <- lapply(filenames_list,function(merge_file_name$Subject){
  print(paste("Merging",merge_file_name,sep = " "))
  read.xlsx(merge_file_name,colNames=TRUE,startRow = 2)
})
PWI <- do.call(rbind.data.frame,All)
write.xlsx(PWI,merge_file_name)

但是,我不断收到错误消息,列数不匹配,但是我不确定在哪里提取所需的特定变量(前面的代码中列出的变量)。我尝试的任何其他调整都导致仅将第一个文件写入xlsx或完全空白的df。任何帮助将不胜感激!

rainbb520 回答:从Excel文件中绑定多个df

library(tidyverse)

df1 <- tibble(
  a = c(1,2,3),x = c(4,5,6)
)

df2 <- tibble(
  x = c(7,8,9),y = c("d","e","f")
)

bind_rows(df1,df2)

bind中的dplyr函数应该可以为您提供帮助。它们可以按行或列将数据帧绑定在一起,并且可以灵活地处理不同的列名。

然后您可以选择要保留的实际列。

本文链接:https://www.f2er.com/3034059.html

大家都在问