-2

我有一个 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

我知道,有一些包可以完成这项工作,但我想使用这个方法;)

4

1 回答 1

1

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

于 2013-11-07T15:52:51.650 回答