计算r中数据帧中Z值的元素数

计算r中数据帧中Z值的元素数,r,aggregate,R,Aggregate,我想用Z值计算元素的数量 我将举一个我需要的例子 我在一个数据框中存储了大量的标签(数百万),它们的格式是 如下图所示。我需要得到每个标签的计数,以找到前10个标签(提到最多的标签) 例如: 我需要的输出是: 注意:我是R的初学者,所以我需要最简单的方法 我的尝试:我尝试了函数table(),但它似乎适用于数字。 我尝试了group_by(),但没有得到想要的结果。 数据集示例: DF <- data.frame(Tag=c("<C++><Java>","<

我想用Z值计算元素的数量

我将举一个我需要的例子

我在一个数据框中存储了大量的标签(数百万),它们的格式是

如下图所示。我需要得到每个标签的计数,以找到前10个标签(提到最多的标签)

例如:

我需要的输出是:

注意:我是R的初学者,所以我需要最简单的方法

我的尝试:我尝试了函数table(),但它似乎适用于数字。 我尝试了group_by(),但没有得到想要的结果。 数据集示例:

DF <- data.frame(Tag=c("<C++><Java>","<java><python><javascript>","<java><C++>","<Json><PHP>","<PHP><Java>"))

                         Tag
1                <C++><Java>
2 <java><python><javascript>
3                <java><C++>
4                <Json><PHP>
5                <PHP><Java>

DF这是一个以R为底的解决方案;在我看来,在这种情况下不需要额外加载库

table(unlist(strsplit(gsub("(^<|>$)", "", DF$Tag), "><")));
#       C++       java       Java javascript       Json        PHP     python
#         2          2          2          1          1          2          1

说明:分别从开头和结尾删除
strsplit
on
“>这里有一个基于R的解决方案;在我看来,在这种情况下不需要加载额外的库

table(unlist(strsplit(gsub("(^<|>$)", "", DF$Tag), "><")));
#       C++       java       Java javascript       Json        PHP     python
#         2          2          2          1          1          2          1

说明:分别从开头和结尾删除
;使用
stringi
dplyr
tidytext
包,可以执行以下操作。您可以使用
stri\u extract\u all\u regex()
提取计算机语言名称,拆分每个字符串,并使用
unnest\u标记()创建数据帧。然后,计算每种语言在数据集中出现的次数

DF %>%
unnest_tokens(input = Tag, output = language, token = stri_extract_all_regex,
              pattern = "(?<=\\<)[^<>]*(?=\\>)", to_lower = TRUE) %>%
count(language, sort = TRUE)

  language       n
  <chr>      <int>
1 java           4
2 c++            2
3 php            2
4 javascript     1
5 json           1
6 python         1
DF%>%
unnest_标记(输入=标记,输出=语言,标记=stri_提取\u全部\u正则表达式,

pattern=“(?使用
stringi
dplyr
tidytext
包,您可以执行以下操作。您可以使用
stri\u extract\u all\u regex()
提取计算机语言名称,并拆分每个字符串,并使用
unest\u标记()创建数据帧
。然后,计算每种语言在数据集中出现的次数

DF %>%
unnest_tokens(input = Tag, output = language, token = stri_extract_all_regex,
              pattern = "(?<=\\<)[^<>]*(?=\\>)", to_lower = TRUE) %>%
count(language, sort = TRUE)

  language       n
  <chr>      <int>
1 java           4
2 c++            2
3 php            2
4 javascript     1
5 json           1
6 python         1
DF%>%
unnest_标记(输入=标记,输出=语言,标记=stri_提取\u全部\u正则表达式,

pattern=“(?然后你可以上传
dput(head(data))
你上传的图片。上传数据格式请发布(部分)您的样本数据使用
dput
;屏幕截图没有用处,因为它需要潜在的受访者手动键入您的样本数据。我添加了一个数据集样本,谢谢扫描您,然后上载
dput(head(data))
您上载的图像。以数据格式上载请发布(部分)您的样本数据使用
dput
;屏幕截图没有用处,因为它需要潜在的应答者手动键入您的样本数据。我添加了一个数据集样本,谢谢。另一个选项是
DF%%>%单独的行(标记,sep=“”)%%>%过滤器(nzchar(标记))%%>%计数(tolower(标记))
@akrun更简单!之后有一个过滤步骤,您不需要need@akrun在
separate_rows()中有一个类似
ommit_empty
的参数会很好
@akrun可能是的。对我来说,重要的是从问题中学习并尽可能多地帮助他人。专注于积极的事情是关键。(至少我还有一个向上的投票权!)另一个选择是
DF%>%分隔行(Tag,sep=“”)%%>%过滤器(nzhar(Tag))%%>%计数(tolower(Tag))
@akrun更简单!之后有一个过滤步骤,您不需要need@akrun在
separate_rows()中有一个类似
ommit_empty
的参数会很好
@akrun可能是的。对我来说,重要的是从问题中学习,并尽可能多地帮助他人。专注于积极的事情是关键。(至少我还有一张赞成票!)
library(tidyverse)
library(tidytext)
DF%>%mutate(Freq=1)%>%
     unnest_tokens(Tag,Tag,"regex",pattern="<|>|\\n")%>%group_by(Tag)%>%
     summarise(count=n())%>%arrange(desc(count))
# A tibble: 6 x 2
         Tag count
       <chr> <int>
1       java     4
2        c++     2
3        php     2
4 javascript     1
5       json     1
6     python     1
sort(table(trimws(unlist(strsplit(gsub("<(.*?)>(R?)","\\U\\1 ",DF$Tag,perl = T)," ")))),T)

      JAVA        C++        PHP JAVASCRIPT       JSON     PYTHON 
         4          2          2          1          1          1