2017-09-25 2 views
1

muss ich diesen Vektor von Strings konvertieren konvertieren:Strings in R hinzufügen und auf numerische

v <- c("60","40 60","30","NA") 

Zu diesem Vektor durch jedes Auftreten Summieren

60 100 30 NA 

ist es eine einfache Möglichkeit, dies zu tun in ein Vektor ohne Schleife über jede Instanz?

+5

'sapply (strsplit (v," „), Funktion (x) Summe (as.numeric (x)))' –

+2

Bitte schreiben Funktionscode, nicht Pseudo-Code. – Frank

+0

Aktualisiert und danke d.b funktioniert super – CuriousGeorge

Antwort

2

Da jedes Element des Vektors mehrere Werte enthalten kann, bleiben Sie bei der Verwendung von Listenfunktionen stecken. Verwenden Sie lapply zu strsplit und konvertieren Sie zu numerisch, bevor Sie über die Liste mit einer Summenfunktion ausführen. Toggle na.rm, um die NA-Werte anders zu behandeln.

v <- c("60","40 60","30","NA") 
sapply(lapply(strsplit(v, " "), as.numeric), sum, na.rm=F) 
Verwandte Themen