在R中,为什么在使用readLines?的while循环中没有计数器更新?例如,如果我运行以下代码,x和y最后输出10:
x <- 0
y <- 0
while(x < 10){
x <- x + 1
y <- y + 1
}
x
y
但是,名为test.txt的文件包含以下内容:
line one
line two
line three
并使用以下代码,计数器不会更新:
textFile <- file("test.txt", open="r")
x <- 0
while(length(line <- readLines(textFile)) > 0){
x <- x + 1
}
close(textFile)
x
为什么x输出1而不是3?
答案 0 :(得分:3)
因为readLines()
一次不在一行中读取文件。它读取所有文件,除非你提供n=
参数,在这种情况下它只会在停止之前读取一定数量的行。请注意,即使您只读了一行,然后再次调用readLines()
,它也会从文件的开头开始。