如何将一列中的所有字符串值粘贴为一个?

时间:2019-02-21 10:45:48

标签: r

我有一个数据框,该数据框由称为Q1Dummy的2列组成:响应者ID和它们以字符串格式做出的响应。

它看起来像这样:

resp_id    Q1
1          Ik vind het niet helemaal netjes om je sociale huurwoning te verhuren, aangezien je dan mensen passeert die al lang op de wachtrij staan of er meer recht op hebben.
2          Ja dat vind ik heel goed omdat mensen die al heel lang op zoek zijn ook een huisje kunnen krijgen.
3          Ik vind het iets begrijpelijks. Als je in de sociale huur zit, geeft het al aan dat je een klein inkomen hebt. Het is fijn om de woning dan achter de hand te hebben als extra inkomen en uitvalsbasis in een stad als Amsterdam. Ook de huur illegaal met iemand delen, waardoor je beide geld bespaard, is een logisch gevolg van de krapte op de huizenmarkt. Ondanks dat het iets illegaals is kan ik er dus begrip voor opbrengen.
...        ...
n          Dat kan echt niet. Je maakt winst op een woning waar subsidie opzit. Daar is de woning niet voor bedoeld.

现在,出于文本挖掘的目的,我想以ngram(共3个)的形式取消响应,如下所示:

tokensQ1Dummy <- Q1Dummy %>%
    unnest_tokens(words, Q1, token = "ngrams", n = 3, n_min = 1) %>%
    count(resp_id, words, sort = TRUE)

但是,当我尝试此操作时,创建的“单词”列包含同一单词的多个问题。因此,在这种情况下,它将为多个用户多次显示单词“ de”:

 resp_id  words     count
 3        de        6
 3        het       4
 5        de        4

但是我想要的是将所有响应都视为“一个”响应,以便将在多个响应中返回的重要主题视为一个主题,因此“ de”一词只会出现一次(因为它是相同的词,但被多个受访者使用)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要按resp_idsummarisecollapse分组以将其串联为一个。很难从数据示例中准确地进行说明,但是代码类似于:

library(tidyverse)

df %>%
  group_by(resp_id) %>%
  summarise(col = paste(Q1, collapse=" "))