如何使用R

时间:2019-04-10 22:02:57

标签: r

我有几个Excel文件,需要合并每个表的第四列。但是,表的行是不同的。其中一些具有7行,但其中一些具有5或6行。这是我的数据描述。

enter image description here

如您所见,有三个excel文件,我需要合并第四列。其中一个具有7行,而另外两个具有5和6行。我尝试使用循环读取文件夹中的所有文件,然后使用“合并”执行此操作。

这是我的代码。

rm(list=ls())
updir = "D:/STAR/MergeResults/Rtest"
library(readxl)

setwd(updir)    #set up the working dictionary

outfile <- ""   #first define an empty variable

file_list <- list.files(pattern = NULL) 

for (i in 1:length(file_list)) {
   file <- read_excel(file_list[i],col_names = TRUE) 
   variable <- file[,4]
   outfile <-merge(outfile,variable)
}

有人可以帮助我将这些列与不同的行合并吗?

1 个答案:

答案 0 :(得分:0)

我更改了outfile的初始化方式,使其为空向量。您可以使用c()函数组合向量。您的其余代码可以保持不变。

cols <- apply(file_list,function(x) {
  read_excel(file_list[i],col_names = TRUE)[,4]
})

max_length <- max(sapply(cols,length))

outfile <- data.frame(x = 1:max_length)

for(v in cols) {
  vmod <- c(v,rep(NA,max_length - length(v)))
  outfile <- cbind(outfile,vmod)
}

outfile <- outfile[,-1]

写入excel:

library(openxlsx)

write.xlsx(outfile, file = "NewFile.xlsx", colNames = TRUE,rowNames = FALSE)