重现问题的一些代码:
data(iris)
print(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
...The rest is abbreviated...
#循环,然后使用“==”来终止它。
iris2=within(iris,{
for(i in 1:150){
if(i==123) break
}
})
print(iris2)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species i
1 5.1 3.5 1.4 0.2 setosa 123
2 4.9 3.0 1.4 0.2 setosa 123
3 4.7 3.2 1.3 0.2 setosa 123
4 4.6 3.1 1.5 0.2 setosa 123
5 5.0 3.6 1.4 0.2 setosa 123
...abbreviated...
显示了一个名为i的附加列,怎么样?
答案 0 :(得分:2)
for
循环在调用环境中创建一个变量来进行计数。分配within
根据您的数据创建的环境的变量将添加到该环境中。将for
循环置于within
调用之外,或在退出i
调用之前将NULL
的值设置为within
,例如:
if(i==123) {i<-NULL;break}