J'essaie de créer une nouvelle colonne dans mon fichier qui collecte et formate tous les mots trouvés dans toutes les autres colonnes. Je voudrais le faire en utilisant dplyr, si possible. dataframe Original:dplyr mute - Comment passer une ligne comme argument de fonction?
df <- read.table(text = " columnA columnB
1 A Z
2 B Y
3 C X
4 D W
5 E V
6 F U " )
Comme un exemple simplifié, j'espère faire quelque chose comme:
df %>%
rowwise() %>%
mutate(newColumn = myFunc(.))
et ont l'apparence de sortie comme ceci:
columnA columnB newColumn
1 A Z AZ
2 B Y BY
3 C X CX
4 D W DW
5 E V EV
6 F U FU
Lorsque je tente cette dans mon code, la sortie ressemble à:
columnA columnB newColumn
1 A Z ABCDEF
2 B Y ABCDEF
3 C X ABCDEF
4 D W ABCDEF
5 E V ABCDEF
6 F U ABCDEF
myFunc devrait prendre une ligne comme argument mais quand j'essaye d'employer rowwise() je semble passer le pib intégralement dans la fonction (je peux voir ceci d'ajouter une fonction d'impression dans myFunc).
Comment est-ce que je peux passer juste une rangée et faire ceci itérativement de sorte qu'il applique la fonction à chaque rangée? Cela peut-il être fait avec dplyr?
Edit:
myFunc dans l'exemple est simplifiée pour le bien de ma question. La fonction réelle ressemble à ceci:
get_chr_vector <- function(row) {
row <- row[,2:ncol(row)] # I need to skip the first row
words <- str_c(row, collapse = ' ')
words <- str_to_upper(words)
words <- unlist(str_split(words, ' '))
words <- words[words != '']
words <- words[!nchar(words) <= 2]
words <- removeWords(words, stopwords_list) # from the tm library
words <- paste(words, sep = ' ', collapse = ' ')
}
Pourriez-vous partager 'myFunc'?Et à quoi ressemble 'df'? – www
Peut-être ai-je mal compris, n'est-ce pas '' df%>% mute '(newColumn = paste0 (colonneA, columnB)) 'donne le résultat désiré? –
J'ai simplifié ma fonction dans le but de ma question. La fonction réelle que j'utilise a été éditée dans mon message. –