Ich habe einen Vektor von Zeichenfolgen und ich möchte Informationen daraus extrahieren. Die Saiten sehen aus wie folgt vor:Auszug aus String getrennt durch Doppelpunkt und Semikolon in R
obs, product
1, apple:pink lady;grade 1
2, apple--pink lady
3, orange
Ich mag diese Informationen und organisiert extrahieren wollte:
obs, product_1, product_2, product_3
1, apple, pink lady, grade 1
2, apple, pink lady, NA,
3, orange, NA, NA
Ich bin neu in die Programmierung und haben versucht, Unter verwenden (‚;. * $‘,‘ ', Datasetname), der einen neuen Vektor zurückgibt, für obs 1, kann ich Produkt 1 erhalten & 2 combined Folglich muss ich eine andere Runde tun, um die neu gebildeten Zeichenketten zu trennen. Für obs 3 (ohne Sonderzeichen, Doppelpunkt oder Semikolon) gibt die Funktion das Ganze zurück. Außerdem muss ich einige Fälle berücksichtigen, in denen das Trennzeichen anders sein kann, wie "-" anstelle von Doppelpunkt und Semikolon.
Ich frage mich, wie kann ich bekommen, was ich mit sqldf oder anderen Paketen in R?
Sie können die 'col.names' Argument dynamisch mit' col.names = paste0 ("product_" machen, 1: max (sapply (strsplit (df1 $ Produkt, "[:; -] +"), Länge))) ' – Benjamin
Können Sie diese ein bisschen mehr erklären? Ich bin neu in diesem Bereich. Vielen Dank für Ihre Zeit. – Jin
@Zuo Ich habe das ganze Trennzeichen auf ',' mit 'gsub' ersetzt und lese die' product' Spalte mit 'read.csv', um drei Spalten zu erstellen und dann' cbind' mit der ersten Spalte – akrun