Dies ist so eine grundlegende Frage, ich bin peinlich zu fragen.Convert begrenzte Zeichenfolge in numerischen Vektor in Datenrahmen
Lassen Sie uns sagen, ich habe eine Datenrahmen voller Spalten, die Daten der folgenden Form enthalten:
test <-"3000,9843,9291,2161,3458,2347,22925,55836,2890,2824,2848,2805,2808,2775,2760,2706,2727,2688,2727,2658,2654,2588"
Ich möchte diese in einen numerischen Vektor konvertieren, die ich wie so getan haben:
test <- as.numeric(unlist(strsplit(test, split=",")))
ich mag jetzt einen großen Datenrahmen enthält eine Spalte voll diese Daten in einen numerischen Vektor äquivalent konvertieren:
mutate(data,
converted = as.numeric(unlist(strsplit(badColumn, split=","))),
)
vermutlich
Das funktioniert nicht, weil es die gesamte Spalte in einen numerischen Vektor Konvertierung und dann eine einzelne Zeile mit diesem Wert zu ersetzen:
Error in mutate_impl(.data, dots) : Column
converted
must be length 20 (the number of rows) or one, not 1274
Wie kann ich das tun?
Die Spalte ist zu lang, nachdem Sie sie aufgeteilt haben. Es sieht so aus, als ob Ihre Daten nur 20 Zeilen haben, aber die geteilte Spalte hat 1274 Elemente. Wenn Sie es nicht als neue Spalte in den Daten zuweisen möchten (was mutate tut), können Sie 'as.numeric (unlist (strsplit (data $ badColumn, split =", ")))' –
Ich verstehe, aber ich bin verwirrt, warum das der Fall ist. Die aktuellen Zeilen enthalten Werte wie "10, 20, 30, 40". Ich möchte nur, dass diese Werte durch ein numerisches Vektoräquivalent c (10, 20, 30, 40) ersetzt werden. – Parseltongue
Sie möchten also mehrere numerische Werte in einer bestimmten Zeile? Z.B. Zeile 1 könnte 'c (10,20,30)' haben? –