首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R XLConnect使用第一个单元格中的内容获取数据块的索引/公式

R XLConnect使用第一个单元格中的内容获取数据块的索引/公式
EN

Stack Overflow用户
提问于 2014-06-11 19:10:07
回答 1查看 396关注 0票数 0

对不起,如果这是很难理解的-我没有足够的业力来添加一个图片,所以我会尽我所能来描述这一点!使用R中的XLConnect包读取和写入Excel电子表格。

我正在进行一个项目,在该项目中,我试图从许多工作簿中提取数据列,并将它们连接到一个新工作簿的行中(每个工作簿都是连续工作日的数据)。问题是,我所寻找的数据只是每个工作簿/工作表中的一小部分(10行X3列),并且由于代表最初创建电子表格的人的懒散,并不总是位于工作表中的同一位置。(例如,我不能只从单元格A2开始,因为在一个工作簿中从A2开始的数据集可能从B12开始,在另一个工作簿中从C3开始)。

我想知道是否可以根据单元格的内容(例如,包含标题为“Arb价格表”的单元格)搜索一个单元格,并返回索引或参考公式,以便能够访问该单元格。

还想知道,一旦我根据单元格的内容引用了该单元格,是否有一种方法来调整该公式,以达到我知道另一个单元格与那个单元格相比的位置。例如,如果具有已知内容的单元格总是位于单元格的上方2行,在单元格左侧3列,我希望开始收集数据,那么是否可以将第一个引用公式增加2行3列,以获得我想要的单元格的引用公式?

谢谢你的帮助,如果你需要更多的信息来理解我的问题,请告诉我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 00:25:34

您只需将整个工作表读入为一个矩阵,其内容如下

代码语言:javascript
复制
library(XLConnect)
demoExcelFile <- system.file("demoFiles/mtcars.xlsx", package = "XLConnect")
mm <- as.matrix(readWorksheetFromFile(demoExcelFile, sheet=1))
class(mm)<-"character" # convert all to character

然后您可以搜索值并获取行/colum。

代码语言:javascript
复制
 which(mm=="3.435", arr.ind=T)

#      row col
# [1,]  23   6

然后,您可以抵消这些,并从矩阵中提取出您喜欢的值。最后,当您知道要从哪里读取时,可以将其转换为更干净的数据框架。

代码语言:javascript
复制
read.table(text=apply(mm[25:27, 6:8],1,paste, collapse="\t"), sep="\t")

希望这能让你对一些你可以尝试的东西有一个大致的认识。如果不确切地知道输入数据是什么样子,就很难说得更具体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24170762

复制
相关文章

相似问题

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