我有一个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
我看到了这个错误:
Error in FUN("ÐÏ\021ࡱ"[[1L]], ...) : subscript out of bounds
我知道,有一些软件包可以完成这项工作,但我想使用这种方法;)
答案 0 :(得分:1)
如果您不想使用任何特殊包,则不必使用任何特殊包,但您的代码是一种效率低下的策略。首先,将您感兴趣的工作表保存为制表符分隔的文本文件或csv文件等。然后,只需使用?read.table或其中一个变体,使用参数nrows=128
。此时,您只将要保留的列分配给列表。您可以使用?rm删除已加载的数据框。