对不起,如果这是很难理解的-我没有足够的业力来添加一个图片,所以我会尽我所能来描述这一点!使用R中的XLConnect包读取和写入Excel电子表格。
我正在进行一个项目,在该项目中,我试图从许多工作簿中提取数据列,并将它们连接到一个新工作簿的行中(每个工作簿都是连续工作日的数据)。问题是,我所寻找的数据只是每个工作簿/工作表中的一小部分(10行X3列),并且由于代表最初创建电子表格的人的懒散,并不总是位于工作表中的同一位置。(例如,我不能只从单元格A2开始,因为在一个工作簿中从A2开始的数据集可能从B12开始,在另一个工作簿中从C3开始)。
我想知道是否可以根据单元格的内容(例如,包含标题为“Arb价格表”的单元格)搜索一个单元格,并返回索引或参考公式,以便能够访问该单元格。
还想知道,一旦我根据单元格的内容引用了该单元格,是否有一种方法来调整该公式,以达到我知道另一个单元格与那个单元格相比的位置。例如,如果具有已知内容的单元格总是位于单元格的上方2行,在单元格左侧3列,我希望开始收集数据,那么是否可以将第一个引用公式增加2行3列,以获得我想要的单元格的引用公式?
谢谢你的帮助,如果你需要更多的信息来理解我的问题,请告诉我!
发布于 2014-06-12 00:25:34
您只需将整个工作表读入为一个矩阵,其内容如下
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。
which(mm=="3.435", arr.ind=T)
# row col
# [1,] 23 6然后,您可以抵消这些,并从矩阵中提取出您喜欢的值。最后,当您知道要从哪里读取时,可以将其转换为更干净的数据框架。
read.table(text=apply(mm[25:27, 6:8],1,paste, collapse="\t"), sep="\t")希望这能让你对一些你可以尝试的东西有一个大致的认识。如果不确切地知道输入数据是什么样子,就很难说得更具体。
https://stackoverflow.com/questions/24170762
复制相似问题