逐行读取excel文件的一列
•浏览 1
reading a column of an excel file line by line
本问题已经有最佳答案,请猛点这里访问。
我有一个 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)
datalistError in FUN("????\\021????±"[[1L]], ...) : subscript out of bounds
我看到这个错误:
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)
datalistError in FUN("????\\021????±"[[1L]], ...) : subscript out of bounds
我知道,有一些包可以完成这项工作,但我想使用这个方法;)
如果你不想,你不必使用任何特殊的包,但你的代码是一种低效的策略。首先,将您感兴趣的工作表保存为制表符分隔的文本文件或 csv 文件等。然后,只需使用带有参数 nrows=128 的 ?read.table 或其变体之一。此时,您只需将要保留的列分配给列表。您可以使用 ?rm 删除加载的数据框。