我正在使用软件包TM。
我有一个带有2列的数据框,第一列是ID,SEOCND列包含文本。数据帧如下。
Id Text
13456 Hi, Good morning
13457 How are you?
13456 May I know who I am speaking to?
13456 Hi, Good evening
我使用了TM软件包并构建了DTM并为每个文档提取了前5个单词,看起来像:
Id Term1 Term2 Term3 Term4 Term5
13456 Hi Good morning term4 term5
13457 How are you term4 term5
13456 I Know may who to
13456 Hi Good Evening term4 term5
但是所需的输出是:
Id Term1 Term2 Term3 Term4 Term5
13456 Hi Good I morning evening
13457 How are you term4 term5
我找不到以前发布的任何问题。预先感谢。
您面临的问题是由于数据的每一行被视为单个文档的事实。因此,在将数据馈送到生成DTM的过程之前,您需要通过`dd` aggregate
进行数据。
以下显示和示例如何在基本R中使用aggregate
。如果您有大量文档,则可以更有效地完成此操作,例如,通过使用软件包data.table
,您可能会查看。但是,为保持简单,我使用基础R。(我使用了自己的模范数据,请下次使用dput
或提供生成您的数据的代码,以使其他人更容易阅读您的示例数据。)
df <- data.frame(id = c(1, 1, 2) , text = c("text1.", "text2.", "text3."))
# id text
# 1 1 text1.
# 2 1 text2.
# 3 2 text3.
df <- aggregate(df$text, by = list(df$id), FUN = function(x) paste(x, collapse = " "))
# Group.1 x
# 1 1 text1. text2.
# 2 2 text3.
colnames(df) <- c("id", "text")