R 逐行读取excel文件的列

R 逐行读取excel文件的列,r,R,我有一个excel文件,我想逐行读取一列(即第三列的前128个值),并将其保存在列表中。我编写了这段代码来读取每一行并提取值,但它不能正常工作: con<-file("D:\\MA\\excel_mix_meiningen.xls","r") datalist<-list() m<-list() # which column spalte<-3 #How many values? for(i in 1:128) { line<-readLines(con,n=

我有一个excel文件,我想逐行读取一列(即第三列的前128个值),并将其保存在列表中。我编写了这段代码来读取每一行并提取值,但它不能正常工作:

con<-file("D:\\MA\\excel_mix_meiningen.xls","r")
datalist<-list()
m<-list()
# which column
spalte<-3
#How many values?
for(i in 1:128)
{

  line<-readLines(con,n=1,warn=FALSE)
  datalist<-c(datalist,sapply(line,"[[",spalte))

}
close(con)
datalist

我知道,有一些软件包可以做这项工作,但我想使用这种方法;)

如果不想使用,您不必使用任何特殊的包,但您的代码是一种低效的策略。首先,将您感兴趣的工作表另存为制表符分隔的文本文件或csv文件等。然后,只需使用或其变体之一,参数为
nrows=128
。此时,仅将要保留的列指定给列表。可以使用删除加载的数据帧

但正如我所说,我不想使用软件包。我想使用此代码:)您不能。读取Excel文件的唯一方法是使用专门设计用于读取该文件格式的代码。查看此软件包我已尝试过,但我遇到另一个错误:您的Excel文件相当大。XLConnect和xlsx(或者更确切地说,Excel的Java接口)对于中等大小的.xlsx文件的性能都非常差。一般来说,如果文件的大小是你的十分之一,我甚至不会费心去尝试。我使用旧的Excel格式(.xls)运气更好。当然,您可以随时导出到csv。我有一个很大的excel文件,
read.table()
无法加载file@joran哪一个?我的密码还是我的想法?@joran,你的权利。我错过了有关Excel文件的部分。我已经修改了我的答案。@Kaja你的答案永远不会(直接)起作用。现在,gung已经编辑以澄清Excel文件必须保存(导出)为完全不同的文件格式,他的方法(read.table或read.csv)将起作用。@Kaja,您的文件太大没有问题;您只需要使用
nrows=128
参数。R将只读取前128行,这在内存中应该不会有任何问题。
Error in FUN("ÐÏ\021ࡱ"[[1L]], ...) : subscript out of bounds