2016-06-23 11 views
1

Ich bin neu in R und ich versuche, effektiver zu programmieren. Ich habe verschiedene Vektoren und ich teilten jeder von ihnen in Teilmengen:organisieren Teilmengen nach dem Aufteilen eines Vektors in R

vector_a <- 1:10000 
nb_of_subsets <- 100 
generate_subsets <- split(vector_a, ceiling(seq_along(vector_a)/nb_of_subsets)) 


vector_b <- 1:9000 
nb_of_subsets <- 100 
generate_subsets <- split(vector_b, ceiling(seq_along(vector_b)/nb_of_subsets)) 

Splitting funktioniert gut, aber ich würde auch jede Teilmenge z-normalisieren möchte. So sollte es für jede Untergruppe so etwas wie dieses:

norm_Sub1<-(generate_subsets$`1`-mean(generate_subsets$`1`))/sd(generate_subsets$`1`) 

Irgendwelche Vorschläge, wie zu handhaben (und umbenennen) Untergruppen effektiv? Ich will nicht Tonnen von Code writh ...

Vielen Dank!

Mel

+0

, warum Sie die gleiche 'generate_subsets' für beide – akrun

+0

Namensgebung werden überprüfen Sie die' lapply() '/' gelten() 'Konzept. In Ihrem Fall wäre 'by()' auch eine Option. – Jimbou

+0

elegante Methode, um einen solchen Vektor in gleiche Teile zu teilen. – Rockbar

Antwort

2

Da der Ausgang ein list, wir können Schleife über die list mit lapply und dann die Normierungsfunktion anzuwenden.

normList <- lapply(generate_subsets, function(x) (x - mean(x))/sd(x)) 
Verwandte Themen