关于r:逐行读取excel文件的一列


reading a column of an excel file line by line

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

我看到这个错误:

1
Error in FUN("????\\021????±"[[1L]], ...) : subscript out of bounds

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


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