Ho un piccolo problema con R e non sono sicuro del perché. Mi sta dicendo che questa linea: if(temp > data[[k]][[k2]]) {
è di lunghezza di argomento 0. Qui è il blocco che non è poi così grande:R - l'argomento è di lunghezza zero in se istruzione
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
}
esempio di ciò che è nei dati [[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"
Grazie - Sam
Ho provato un po 'a riprodurre, ma non è riuscito. Prova a impostare 'options (error = recover)' per scaricarti nel browser quando colpisci l'errore. Quindi stampa 'k' e' k2' e guarda attentamente il caso che ti mette nei guai. –
Dovresti davvero pubblicare un [esempio riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) con input di esempio e output desiderato che può essere copiato/incollato su R. Inoltre, descrivi cosa stai cercando di fare invece di pubblicare solo il codice non funzionante; potrebbe esserci un modo migliore per farlo. Ma il tuo codice è terribilmente strano avere un ciclo 'for' su' k2' e anche così incrementare manualmente il valore. – MrFlick
Va bene, lo metto come una risposta con una buona spiegazione, se la sua confusione mi consente di sapere anche se non sono il migliore nelle spiegazioni. – user3558177