"a" ist eine Liste.kombinieren bestimmte Objekte in einer Liste
> a<-list(1,2,3,c(4,5),6,7)
> a
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4 5
[[5]]
[1] 6
[[6]]
[1] 7
"b" ist ein Transformationsindikator.
b<-c(3,2,1)
I Gruppe möchte (oder verbinden) Objekte in „a“ nach der Zahl in „b“, das die erste 3-Objekte Gruppe zusammen bedeutet, dann ist die nächsten zwei, schließlich das letzte, das erwartete Ergebnis ist, wie folgt:
[[1]]
[1] 1 2 3
[[2]]
[1] 4 5 6
[[3]]
[1] 7
kann ich nur „cumsum“ verwenden, um die drei Gruppen zusammenzufassen, aber nicht wissen, wie jedes Objekt angezeigt werden, wie oben aufgeführt. Vielen Dank.
'Julius <-Funktion() tapply (a, rep (seq_along (b), b), Reduce, f = "c"); akrun <-funktion() lapply (split (a, cumsum (Sequenz (b) == 1)), unlist); identisch (Julius(), akrun()) [1] FALSCH, warum sind sie nicht gleich? – lightsnail
@lightsnail Es muss wegen einiger Attribute in der 'Julius()' Ausgabe sein. Versuchen Sie 'all.equal (akrun(), Julius(), check.attributes = FALSCH) # [1] TRUE' – akrun
Vielen Dank! – lightsnail