为什么1:0中的n在R中迭代2次?
请原谅我的无知,但如果有人解释我为什么会得到这个结果,我将不胜感激。我希望结果为空,因为我希望迭代行数,而行数为0。相反,它会迭代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
> 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