Ich versuche, eine kurze Funktion zu schreiben, die Werte zuweist und inkrementell einen Vektor basierend auf Werten in einem anderen Vektor auffüllt. Wenn ich zum Beispiel einen Vektor von Binärdateien a = [0,1,1,0,1] habe, möchte ich einen Vektor b mit der gleichen Länge wie a erzeugen, der einen Wert x zuweist, wenn a [1] = 0 oder ein Wert y, wenn a [1] = 1 ist. So b = [0.4,0.6,0.6,0.4,0.6]R: Befüllen eines Vektors inkrementell
Ich habe dies getan:
a<-sample(0:1,20,replace=T)
assign<-function(x){
c<-vector()
for (i in 1:length(x)){
ifelse (x[[i]]>0,b<-0.6,b<-0.4)
c[[length(c)+1]]=b}
return (b)
}
aber dann
assign(a)
gibt nur die erste Aufgabe. Ich nehme an, ich habe die Schleife nicht korrekt verschachtelt?
'b <- c (0,4, 0,6) [a + 1 ] '? – Cath
'zuweisen' ay ay ay ..... –
Es gibt auch eine einfache 'b <- 0.2 * a + 0.4', aber ich denke, die Lösung von @Cath ist besser, weil es die zwei möglichen Rückgabewerte 0,4 und 0,6 Zoll anzeigt der Code. – RHertel