2016-07-23 12 views
-2

Ich habe versucht, einen numerischen Vektor zu durchlaufen. Wie mache ich das? Typischerweise beginnt in einer for Schleife die Schleife mit for(i in 1:z). Ich möchte jedoch etwas wie for(i in vector). Zum Beispiel finden Sie in der unten:R: Schleife über Elemente eines numerischen Vektors ohne Vektorisierung

x <- c(839898, 3, 9) 
for (i in x) { print(i) } 

# Desired output 
839898 
3 
9 

In diesem Fall will ich nicht zu vectorize dieser wie ich versuche zu lernen, wie dies zu erreichen, mit einer for Schleife.

Während dieser Beitrag ist ähnlich zu vielen anderen, in fast allen anderen habe ich nur vectorized Lösungen gesehen, weil jemand versucht, eine Aufgabe mit minimaler Laufzeit zu erreichen, anstatt zu lernen, wie die Schleifen arbeiten.

+3

Ihr Beispiel funktioniert, habe ich keine Ahnung, was immer Sie wollen. –

+2

AFAIK mit einer 'Apply'-Funktion ist nicht vektorisiert. Ich vermute, dass in irgendeiner Lösung unterhalb von R eine Schleife intern zu irgendeinem Zeitpunkt verwendet wird (dies wird für "anwenden"). –

+2

Es hat auch für mich funktioniert. Gibt es einen Grund, warum Sie nicht in Standard-R-Prinzipien arbeiten und Dinge vektorisieren wollen? Schleifen sind in der Regel keine gute Praxis in R. – Vedda

Antwort

2

Ich glaube, Sie über einen Tippfehler machen, und Sie wollen i statt print x drucken. Hier ist die Ausführung in RStudio.

Screenshot of Code Execution in RStudio

1

Sie müssen dies:

for (i in seq_along(x)) { 
    print(x[i]) 
} 

Sie drucken x direkt, welche die globale Umwelt definiert ist. Sie wollen das i te Element von x in der for Schleife drucken

+0

Danke! Es war ein Tippfehler. – user3614648

Verwandte Themen