我遇到了一个小问题,我不知道为什么。它是告诉我,这条线:if(temp > data[[k]][[k2]]) {
被参数长度0。这里的是这是不是大的块:什么是在数据R - 参数是长度为零的if语句
for(k in 1:length(data)) {
temp <- 0
for(k2 in 3:length(data[[k]])) {
print(data[[k]][[k2]])
if(temp > data[[k]][[k2]]) {
temp <- data[[k]][[k2]]
}
fMax[k] <- temp
k2 <- k2 + 1
}
k <- k + 1
}
例如[[K]] [[K2]]:
[1] "3050"
[1] "3051"
[1] "3054"
[1] "3054"
[1] "3052"
[1] "3053"
[1] "3059"
[1] "3059"
[1] "3057"
[1] "3060"
[1] "3063"
[1] "3060"
[1] "3068"
[1] "3067"
[1] "3079"
[1] "3085"
[1] "3094"
[1] "3107"
[1] "3121"
[1] "3135"
[1] "3147"
[1] "3161"
[1] "3200"
[1] "3237"
[1] "3264"
[1] "3274"
[1] "3284"
[1] "3289"
[1] "3292"
[1] "3300"
[1] "3301"
[1] "3303"
[1] "3306"
[1] "3310"
[1] "3312"
[1] "3313"
[1] "3319"
[1] "3314"
[1] "3318"
[1] "3318"
[1] "3320"
[1] "3322"
[1] "3322"
[1] "3322"
[1] "3328"
[1] "3332"
[1] "3338"
[1] "3350"
[1] "3358"
[1] "3378"
[1] "3395"
[1] "3402"
[1] "3875"
[1] "3950"
[1] "3988"
[1] "4018"
[1] "4039"
[1] "4048"
[1] "4057"
[1] "4062"
[1] "4067"
[1] "4076"
[1] "4082"
[1] "4085"
[1] "4092"
[1] "4098"
[1] "4099"
[1] "4101"
[1] "4107"
[1] "4119"
[1] "4139"
[1] "4164"
[1] "4231"
[1] "4347"
[1] "4559"
谢谢 - 山姆
我尝试了一些重现,但不能。尝试设置'选项(错误=恢复)'当你点击错误时将你转储到浏览器中。然后打印'k'和'k2',仔细看看是否有麻烦的情况。 – 2014-12-08 03:03:31
你真的应该发布一个[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)样本输入和所需的输出,可以复制/粘贴到R.此外,描述你想要做的,而不是只发布破碎的代码;可能有更好的方法来做到这一点。但是你的代码在'k2'上有一个'for'循环,所以手动增加这个值是非常奇怪的。 – MrFlick 2014-12-08 03:03:59
好吧我把它作为一个很好的解释答案,如果它的困惑让我知道,但我不是最好的解释。 – user3558177 2014-12-08 03:13:35