Plusieurs Séparateurs pour le même fichier d'entrée R
J'ai eu un coup d'oeil pour les réponses, mais ont seulement trouvé des choses en se référant à C ou C#.
Je me rends compte que beaucoup de R est écrit en C, mais mes connaissances, il est inexistant.
Je suis relativement nouveau à R.
Je suis en utilisant le courant Rstudio.
Ceci est similaire à ce que je veux, je pense.
Lire les données de manière efficace avec de multiples lignes séparatives R
J'ai un fichier csv, mais une variable est une chaîne de caractères avec des valeurs séparées par des _
et -
Et je voudrais savoir si il existe un package ou d'un code supplémentaire qui est le suivant sur la lecture. commande.
"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
Exemple de ligne:
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
Il est donc assez facile à lire dans
results <- read.delim("~/results", header=F)
mais ensuite j'ai encore la chaîne *XYZ_Name3_KB_MobApp_M-18-25_AU_PI
De sortie désiré(séparées par des _
et par -
):
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
mais pas diviser la chaîne de temps.
---- Merci @Henrik et @AnandaMahto pour le code et l'emballage. ----
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)
Jetez un oeil à
str_split
ou stringr::str_split_fixed
et voir si cela aide.Ah, si simple. Pensez-vous que je devrais le faire à plusieurs étapes, alors? Plutôt que lors de l'importation.
Je ferais juste après l'importation. Je vais poster l'extrait de code ci-dessous.
vous pouvez spécifier plus d'une scission de caractère dans strsplit en utilisant les regex et | opérateur, e.g strsplit("*XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID",split="\_|\\-")
OriginalL'auteur CArnold | 2013-11-19
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Appuyant sur les commentaires ci-dessous, voici une autre option possible, mais un qui utilise
read.table
au lieu destrsplit
.strsplit
approche, l'utilisation d'une expression régulière et passez lagsub
étape, et peut-être juste utiliserdo.call(rbind, ...)
depuis (Irbind.data.frame
est plus lent (et il vous donne funky noms). (2) Si vous allez utiliser l'gsub
approche, oublierstrsplit
et l'utilisationread.table(text = df_V3, sep = "-")
.Mais +1 pour une réponse qui devrait au moins du point de l'OP dans le bon sens 😉
Je upvote si j'avais assez de points de réputation. Mais, malheureusement, pas encore.
Modifier votre question avec certaines des données reproductibles et quelques exemples de ce que vous avez essayé, et les gens sont sûrs de vous donner plus de votes sur votre question, qui à son tour vous permettra de voter sur les réponses 😉
d'accord, le code est un peu en désordre, l'intention était de diriger les OP dans la bonne direction, n'hésitez pas à modifier.
OriginalL'auteur zx8754
- Je trouver les fonctions dans le paquet
splitstackshape
pratique dans de tels cas.OK. Éventuellement, il ya certaines caractéristiques de vos données d'origine ne sont pas représentés dans le petit échantillon dans votre question (qui fonctionne très bien, pour moi). Des acclamations.
comme le paquet de l'auteur, je serais curieux de voir certaines données réelles qui crée cette erreur et les étapes pour le reproduire. Hésitez pas à le faire par le créer un problème sur le paquet de Github issue tracker. Merci!
OriginalL'auteur Henrik
(cela suppose que vous êtes OK avec le fait d'avoir la colonne d'origine encore en place)
OriginalL'auteur hrbrmstr