首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用R组合具有不同行的列

如何使用R组合具有不同行的列
EN

Stack Overflow用户
提问于 2019-04-11 06:02:57
回答 1查看 204关注 0票数 0

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

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

这是我的代码。

代码语言:javascript
运行
复制
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)
}

有人能帮我合并这些不同行的列吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 07:13:07

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

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
library(openxlsx)

write.xlsx(outfile, file = "NewFile.xlsx", colNames = TRUE,rowNames = FALSE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55621922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档