如何创建一个术语矩阵来对与每个文档关联的数值求和?
How can I create a term matrix that sums numeric values associated to each document?
我对 R 和 tm 有点陌生,所以很难完成这个练习!
我有一个 description 列,其中包含混乱的非结构化数据,其中包含有关客户姓名、城市和国家/地区的文字。另一列包含 已售商品的数量 .
**Description Sold Items**
Mrs White London UK 10
Mr Wolf London UK 20
Tania Maier Berlin Germany 10
Thomas Germany 30
Nick Forest Leeds UK 20
Silvio Verdi Italy Torino 10
Tom Cardiff UK 10
Mary House London 5
使用 tm 包和 documenttermmatrix,我能够将每一行分解为术语并获得每个词的频率(即使用该词的客户数量)。
UK London Germany … Mary
Frequency 4 3 2 … 1
不过,我还想对已售商品的总金额求和。
所需的输出应该是:
UK London Germany … Mary
Frequency 4 3 2 … 1
Sum of Sold Items 60 35 40 … 5
我怎样才能得到这个结果?
假设您可以到达 Frequency
table:
UK London Germany … Mary
Frequency 4 3 2 … 1
并且您可以提取单词,您可以使用带有 grep
的应用函数。在这里,我将创建一个向量,代表您从 frequency
table:
中提取的字典
S_data<-read.csv("data.csv",stringsAsFactors = F)
Words<-c("UK","London","Germany","Mary")
然后在应用程序中使用它,如下所示。这可以更有效地完成。但是你会明白的:
string_rows<-sapply(Words, function(x) grep(x,S_data$Description))
string_sum<-unlist(lapply(string_rows, function(x) sum(S_data$Items[x])))
> string_sum
UK London Germany Mary
60 35 40 5
只需将其绑定到您的 frequency
table
我对 R 和 tm 有点陌生,所以很难完成这个练习!
我有一个 description 列,其中包含混乱的非结构化数据,其中包含有关客户姓名、城市和国家/地区的文字。另一列包含 已售商品的数量 .
**Description Sold Items**
Mrs White London UK 10
Mr Wolf London UK 20
Tania Maier Berlin Germany 10
Thomas Germany 30
Nick Forest Leeds UK 20
Silvio Verdi Italy Torino 10
Tom Cardiff UK 10
Mary House London 5
使用 tm 包和 documenttermmatrix,我能够将每一行分解为术语并获得每个词的频率(即使用该词的客户数量)。
UK London Germany … Mary
Frequency 4 3 2 … 1
不过,我还想对已售商品的总金额求和。
所需的输出应该是:
UK London Germany … Mary
Frequency 4 3 2 … 1
Sum of Sold Items 60 35 40 … 5
我怎样才能得到这个结果?
假设您可以到达 Frequency
table:
UK London Germany … Mary
Frequency 4 3 2 … 1
并且您可以提取单词,您可以使用带有 grep
的应用函数。在这里,我将创建一个向量,代表您从 frequency
table:
S_data<-read.csv("data.csv",stringsAsFactors = F)
Words<-c("UK","London","Germany","Mary")
然后在应用程序中使用它,如下所示。这可以更有效地完成。但是你会明白的:
string_rows<-sapply(Words, function(x) grep(x,S_data$Description))
string_sum<-unlist(lapply(string_rows, function(x) sum(S_data$Items[x])))
> string_sum
UK London Germany Mary
60 35 40 5
只需将其绑定到您的 frequency
table