Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据相似的结果分组,并检查每组的其他变量是否为真/假_R_String_Similarity - Fatal编程技术网

R 根据相似的结果分组,并检查每组的其他变量是否为真/假

R 根据相似的结果分组,并检查每组的其他变量是否为真/假,r,string,similarity,R,String,Similarity,我有一个不同公司的数据集,这些公司在不同的博客上发表了文章(但他们使用相似的名称,并不总是相同的),我想根据相似的结果对他们进行分组,并计算他们发表文章的博客数量 我想按相似的名称结果对其进行分组,保留第一个结果的地址,然后检查其余结果的变量中是否有1(已发布文章)或0(未发布文章) 对于第一部分,我有一个类似的问题,但现在我不知道如何同时管理这两个操作 这是我的数据集示例: name address sports_blog nutrition_bl

我有一个不同公司的数据集,这些公司在不同的博客上发表了文章(但他们使用相似的名称,并不总是相同的),我想根据相似的结果对他们进行分组,并计算他们发表文章的博客数量

我想按相似的名称结果对其进行分组,保留第一个结果的地址,然后检查其余结果的变量中是否有1(已发布文章)或0(未发布文章)

对于第一部分,我有一个类似的问题,但现在我不知道如何同时管理这两个操作

这是我的数据集示例:

   name           address           sports_blog nutrition_blog lifestyle_blog nature_blog
   <chr>          <chr>                   <dbl>          <dbl>          <dbl>       <dbl>
 1 Wellington     Adam Martin Sq. 1           1              0              0           0
 2 Wellingtoon    Adam Martin Sq. 1           0              1              0           0
 3 Wellington Co. Adam Martin Sq. 1           0              0              1           0
 4 Welinton       Adam Martin Sq. 1           0              0              0           1
 5 Cornell        Blue cross street           1              0              0           0
 6 Kornell        Blue cross street           0              1              0           0
 7 Coornell       Blue cross street           0              0              0           1
 8 Bleend         Aloha avenue                0              0              1           0
 9 Blind          Aloha avenue                0              0              0           1
10 Laguna         River street                1              0              0           0
11 Papito         Carnival street             1              0              0           0
12 Papeeto        Carnival street             0              0              1           0
名称地址体育\u博客营养\u博客生活方式\u博客自然\u博客
1惠灵顿亚当马丁广场11100
2韦林顿亚当马丁广场1010
3惠灵顿公司亚当·马丁广场1 0 1 0
4威尔士亚当·马丁广场1 0 0 1
康奈尔蓝十字街5号100
科内尔蓝十字街6号01 0 0
库内尔蓝十字街7号01
布莱恩德阿洛哈大道8号01 0
阿洛哈大道9号,01
拉古纳河街10号100
嘉年华街11号
帕皮托嘉年华街12号01 0
因此,我在寻找这样的东西:

  name       address           sports_blog nutrition_blog lifestyle_blog nature_blog
  <chr>      <chr>                   <dbl>          <dbl>          <dbl>       <dbl>
1 Wellington Adam Martin Sq. 1           1              1              1           1
2 Cornell    Blue cross street           1              1              0           1
3 Bleend     Aloha avenue                0              0              1           1
4 Laguna     River street                1              0              0           0
5 Papito     Carnival street             1              0              1           0
名称地址体育\u博客营养\u博客生活方式\u博客自然\u博客
惠灵顿亚当马丁广场1号
康奈尔蓝十字街2号110 1
布莱恩德阿洛哈大道3号01
拉古纳河街4号100
5至嘉年华街10至10

您只需将其包含在分组中即可。使用上一个答案中的函数(由@RuiBarradas给出),然后

这就给了,

#一个tible:5 x 6
#组别:grp[5]
姓名地址体育博客营养博客生活博客自然博客
布莱恩德·阿洛哈大街1号0 1 1
康奈尔蓝十字街2号110 1
3拉古纳河畔酒店1 0 0 0
4至嘉年华街1010
5惠灵顿AdamMartinSq1 1

酷!我没有意识到一个简单的总和是可以的,因为我每行最多有一个!非常感谢,@Sotos!
library(dplyr)

df %>% 
 group_by(name = name[similarGroups(name)], address) %>% 
 summarise_all(sum)
# A tibble: 5 x 6
# Groups:   grp [5]
  name        address         sports_blog nutrition_blog lifestyle_blog nature_blog
  <fct>      <fct>                 <int>          <int>          <int>       <int>
1 Bleend     Alohaavenue               0              0              1           1
2 Cornell    Bluecrossstreet           1              1              0           1
3 Laguna     Riverstreet               1              0              0           0
4 Papito     Carnivalstreet            1              0              1           0
5 Wellington AdamMartinSq1             1              1              1           1