-1
votes

Comment soustraire le nombre de chaînes dans un Dataframe

Ce serait génial si vous pouvez partager une aide pour mon problème. Fondamentalement, mon jeu de données est un peu différent. Il ressemble à ce qui suit.

structure(list(rse1e = structure(c(3L, 7L), .Label = c("", ", , , , , , ", 
"[118, 25], [17, 76], [56, 56], [34, 67], , , ", "[17, 76], , , , , , ", 
"[34, 67], [118, 25], [17, 76], [0, 84], [84, 42], [56, 56], [151, 8]", 
"[34, 67], [168, 0], , , , , ", "[56, 56], [0, 84], [34, 67], [168, 0], [151, 8], , ", 
"[56, 56], [118, 25], [0, 84], , , , ", "{\"ImportId\":\"rse1e\"}", 
"rse1e"), class = "factor"), rse2e = structure(6:7, .Label = c("", 
", , , , , , , ", "[0, 54], [173, 11], [22, 49], [108, 27], [86, 32], [43, 43], [130, 22], [216, 0]", 
"[108, 27], [0, 54], , , , , , ", "[151, 16], [216, 0], [108, 27], , , , , ", 
"[22, 49], [108, 27], [86, 32], [151, 16], , , , ", "[43, 43], [108, 27], [173, 11], [130, 22], [0, 54], , , ", 
"[86, 32], , , , , , , ", "{\"ImportId\":\"rse2e\"}", "rse2e"
), class = "factor")), row.names = 15:16, class = "data.frame")


2 commentaires

Pouvez-vous dput () vos données? Voici un cas lorsque nous devrons connaître soigneusement ce qui est exactement dans vos données


@Michaelchirico, désolé pour la confusion, j'essaie de dput () les données de la question. Est-ce plus clair?


3 Réponses :


1
votes

Pas tout à fait sûr de vos données, mais en retirant les supports et la fractionnement par | code> peut être obtenu comme suit: xxx pré>

Si vous ne voulez pas garder | code> comme votre délimiteur, vous pouvez faire: P>

unlist(strsplit(a, "[|]", perl = TRUE))
[1] "1 34, 67, 17, 76 " " 17, 76"


2 commentaires

oh désolé, "|" n'est pas dans le fichier de données! Je l'ai mis ici pour indiquer qu'ils sont deux colonnes distinctes ..


Désolé encore, je pense que la façon dont je pose la question est mauvaise. J'essaye gsub ("\ [| \]", "", des données), mais cela me renvoie avec des valeurs, serait-il possible de le convertir en Dataframe?



0
votes

Vous pouvez essayer xxx

tel que xxx

edit : Pour diviser la chaîne en termes de support xxx


5 commentaires

Serait-il possible d'avoir les chiffres stockés comme un vecteur? Comme "118", "25", "17", "76", "56", "56", "34", "67" au lieu d'une longue chaîne "118 25 17 76 56 56 34 67"


@Ruiguan Oui, c'est possible, mais dans ce cas, comment voulez-vous stocker les chiffres dans votre cadre de données?


Merci, je viens de mettre à jour le message. En fait, il vaut mieux le codage de suivi si "[34, 67], [17, 76]" peut être transformé en "[34, 67]" "[17, 76]" ou "34, 67", "17 , 76 ", est-ce possible?


Idéalement, ils peuvent être stockés comme une chaîne dans le cadre


@RUIGUAN J'ai ajouté une ligne de plus pour vous montrer comment scinder la chaîne, mais je n'ai aucune image dans mon esprit comment placer le vecteur de chaîne dans votre cadre de données comme sortie



0
votes

Nous pouvons également supprimer tous les caractères qui ne sont pas des chiffres avec un espace.

splitstackshape::cSplit(df, names(df), sep = " ")


1 commentaires

Merci beaucoup, cela fonctionne, d'ailleurs, il est possible de fractionner les entrées en colonnes de sorte que chaque colonne n'ait qu'un numéro?