2016-06-13 20 views
0

a ist eine Liste. a<-list(1,3,4,2,5,6)ersetzen Sie die Objekte in einer Liste mit entsprechenden Objekten in einer anderen Liste

b ist auch eine Liste. b<-list(c(1,2),4,5,6,7,8)

p ist ein Indikator. p<-c(T,F,T,T,T,T)

Wenn wahr ist, dann ersetzen wir a durch b an der jeweiligen Position. Ansonsten behalte einfach a wie es war.

Also das erwartete Ergebnis ist wie folgt:

[[1]] 
[1] 1 2 

[[2]] 
[1] 3 

[[3]] 
[1] 5 

[[4]] 
[1] 6 

[[5]] 
[1] 7 

[[6]] 
[1] 8 

ich den folgenden Code zur Berechnung:

replace(a,b,p) 

Allerdings stellte sich heraus, dass:

Error in replace(a, b, p) : invalid subscript type 'list' 

Könnten Sie Hilfe damit, danke!

+2

'a [p] <- b [p]'. 'ifelse (p, b, a)'. – joran

+0

'a [p] <- b [p]' sollte es tun? –

+2

'ersetzen (a, p, b [p])', wenn Sie diese Route gehen möchten. –

Antwort

1

ich denke, das sollte funktionieren:

a[p]<-b[p] 

oder:

ifelse(p, b, a) 
+1

Kann so einfach sein! Vielen Dank! – lightsnail

Verwandte Themen