Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么1:0中的n在R中迭代2次?_R_Loops_Dataframe_Iteration - Fatal编程技术网

为什么1:0中的n在R中迭代2次?

为什么1:0中的n在R中迭代2次?,r,loops,dataframe,iteration,R,Loops,Dataframe,Iteration,请原谅我的无知,但如果有人解释我为什么会得到这个结果,我将不胜感激。我希望结果为空,因为我希望迭代行数,而行数为0。相反,它会迭代2次: > df<-data.frame() > nrow(df) [1] 0 > for(n in 1:nrow(df)){ cat("foo")} foofoo 范围X:Y为您提供从X到Y的向量,包括X和Y。如果X>Y,列表将减少。在您的例子中,您要求的是一个1:0的列表,它有两个元素,1和0。正是出于这个原因,不应该使用1:nrow(d

请原谅我的无知,但如果有人解释我为什么会得到这个结果,我将不胜感激。我希望结果为空,因为我希望迭代行数,而行数为0。相反,它会迭代2次:

> df<-data.frame()
> nrow(df)
[1] 0
> for(n in 1:nrow(df)){ cat("foo")}
foofoo

范围X:Y为您提供从X到Y的向量,包括X和Y。如果X>Y,列表将减少。在您的例子中,您要求的是一个1:0的列表,它有两个元素,1和0。

正是出于这个原因,不应该使用
1:nrow(df)
。改用
seq_len(nrow(df))
。@nicola你应该把它作为答案发布出来。:)设置NROW()后,当遇到一维对象时,它不会抛出错误。“如果Y>X,列表正在减少”-这不应该是“如果X>Y”吗?
> 1:0
[1] 1 0