Mehrere Separatoren für die gleiche Datei-input-R
Ich habe einen Blick für die Antworten, aber habe nur Dinge bezogen auf C oder C#.
Ich erkennen, dass vieles von R ist in C geschrieben, aber mein wissen ist nicht existent.
Ich bin auch relativ neu zu R.
Ich bin mit dem aktuellen Rstudio.
Dies ist ähnlich zu dem, was ich will, denke ich.
Lesen Sie die Daten effizient mit mehreren Trenn-Linien in R
Ich habe eine csv-Datei sondern eine variable ist ein string mit den Werten, getrennt durch _
und -
Und ich würde gerne wissen, ob es ein Paket oder extra-code, die die folgenden auf das Lesen. Befehl.
"1","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,218,4,93,1377907200000
"2","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,390,5,157,1377993600000
"3","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,376,5,193,1.37808e+12
"4","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",1,35,1,15,1377907200000
"5","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",12,11258,117,2843,1377993600000
"6","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",5,4659,56,1826,1.37808e+12
"7","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",7,7296,136,2684,1377907200000
"8","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,4533,35,1632,1377907200000
"9","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,421,6,161,1377993600000
"10","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,57,2,23,1.37808e+12
Beispiel Zeile:
Name Name1 *XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID 2013-09-32 14:39:55.0 2013-10-16 13:58:00.0 0 218 4 93 1377907200000
So ist es einfach genug, um zu Lesen in
results <- read.delim("~/results", header=F)
aber dann habe ich noch den string *XYZ_Name3_KB_MobApp_M-18-25_AU_PI
Gewünschte Ausgabe(getrennt durch _
und durch -
):
Name Name1 *XYZ Name3 KB MobApp M 18 25 AU PI ANDROID 2013-09-32 14:39:55.0 2013-10-16 13:58:00.0 0 218 4 93 1377907200000
aber nicht Spalten die Uhrzeit-Zeichenfolge.
---- Danke @Henrik und @AnandaMahto für den code und package. ----
library(splitstackshape)
# split concatenated column by `_`
df4 <- concat.split(data = df3, split.col = "V3", sep = "_", drop = TRUE)
# split the remaining concatenated part by `-`
df5 <- concat.split(data = df4, split.col = "V3_5", sep = "-", drop = TRUE)
- Ich habe die Möglichkeit, zu exportieren, erneut zu csv und dann in excel und mit text in Spalten doppelt. aber wie bin ich auf excel 2010 ist es mit einer begrenzten Anzahl von Zeilen.
- Haben Sie einen Blick auf
str_split
oderstringr::str_split_fixed
und sehen, ob das hilft. - Ah, so einfach. Glaubst du, ich sollte es tun, es mehrere Schritte dann? Statt auf "importieren".
- Ich würde es tun, direkt nach dem import. Ich poste snippet unten.
- Sie können angeben, mehr als eine split-Charakter in strsplit mit regex und | operator e.g strsplit("*XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID",split="\_|\\-")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Aufbauend auf den Kommentaren unten, hier ist noch eine entsprechende option, aber eine, die verwendet
read.table
stattstrsplit
.strsplit
Ansatz, einen regulären Ausdruck verwenden, und überspringen Sie diegsub
Schritt, und vielleicht verwenden Sie einfachdo.call(rbind, ...)
da (I glaube)rbind.data.frame
langsamer ist (und es gibt Sie funky Namen). (2) Wenn Sie zu gehen verwenden Sie diegsub
Ansatz, vergessenstrsplit
und verwendenread.table(text = df_V3, sep = "-")
.Finde ich die Funktionen im Paket
splitstackshape
bequem in Fällen wie diesem.(dies wird vorausgesetzt, Sie sind OK mit, dass die Spalte "original" noch vorhanden)