2016-09-19 11 views
2

Ich habe einen Vektor x <- c(1:10), mein Problem Aussage ist, dass, wenn mein Element Summe größer als oder gleich 10 dann speichern sie in einem anderen Objekt, so dass meine Ausgabe aussehen würde a=(1,2,3,4); b=(5); c1=(6); d=(7); e=(8); f=(9); g=(10) I haben versucht diesGruppierung Elemente auf der Grundlage ihrer Summe

x <- c(1:10) 

for(i in x) { 
    if(sum(x) <= 10) 
    { 
    . 
    . 
    . 
    } 

} 

jede Hilfe wäre sehr willkommen!

Antwort

1

Wir können eine doppelte cumsum erstellen, um eine Gruppierungsvariable und split die vector ('x') basierend darauf zu erstellen.

lst <- split(x, cumsum(cumsum(x)>10)) 

Wenn wir einzelne Objekte im globalen Umfeld benötigen, können list2env verwendet werden (aber nicht empfohlen)

list2env(setNames(lst, letters[seq_along(lst)]), envir = .GlobalEnv) 
Verwandte Themen