Ich habe ein Endspiel in Kürze, hier sind einige Beispiele, die der Lehrer geschrieben hat, aber wirklich nicht verstehen kann.R Programmiersprache - Loops
1. for
und next
for(i in 1:3)
{
print("a")
next
print("b")
}
druckt
[1] "a"
[1] "a"
[1] "a"
2.Nested for
Wie funktioniert die nächste Anweisung Arbeit hier? Es läuft weiter, wenn eine Bedingung gesetzt ist, ich weiß, Beispiel (if i==3) {next}
, so ignoriere ich die Erlöse mit i=3
, aber wie funktioniert es, wenn es nicht unter einer Bedingung ist? suchte das ganze Netz aber konnte keine Antwort finden
for(i in 1:3){
for(j in 1:3)
for(k in j:i)
print("*")
}
Der obige Code produziert 17 Sterne. Wie ?
3.Another Geheimnis
my.vector <- c(1,5,9,13)
my.data <- c()
for(i in my.vector){
if(i <= 5){
my.data <- c(my.data, "small")
}else{
my.data <- c(my.data, "huge")
}
my.data <- c(my.data, i)
}
Der Ausgang des Code oben ist "9", "großes", "13"
Im Ernst, wie? Sollte es nicht "klein", "klein", "riesig", "riesig" sein?
die Lehrer sagen, dass sie Sie sollten aufhören, lehren Objekte in einem wachsen Schleife. Es gibt normalerweise bessere Alternativen zu "for" -Schleifen in R, aber wenn Sie sie verwenden, weisen Sie das Rückgabeobjekt vor. Zu 'next': Da der Code immer aufgerufen wird, springt er immer zur nächsten Iteration. Der nachfolgende Code wird immer ignoriert (daher ist dieses Beispiel etwas dumm). Ich weiß nicht einmal, wieso sie dir "nächstes" beibringen. In mehr als fünf Jahren, in denen ich R verwendet habe, habe ich nie "next" verwendet. – Roland
Eine gute Methode, um diese Art von Problemen selbst zu lösen, ist das Einfügen zusätzlicher Druckanweisungen wie 'print (i)', um die Bewegung in den Schleifen zu verfolgen. – lmo