在R中的两个不同列(按行)中添加具有匹配词百分比的列

bkt619

我有一个tbl_df,想查看两个字符串之间匹配单词的百分比。

数据如下所示:

# A tibble 3 x 2
       X                 Y
     <chr>             <chr>
1 "mary smith"      "mary smith"
2 "mary smith"      "john smith"
3 "mike williams"   "jack johnson"

所需的输出(按任意顺序%):

# A tibble 3 x 3 
       X               Y           Z 
     <chr>           <chr>        <dbl>
1 "mary smith"    "mary smith"     1.0 
2 "mary smith"    "john smith"     0.50 
3 "mike williams" "jack johnson"   0.0
阿克伦

一种base R选择是在按空格对列进行检查后,检查length常用词(intesect)的大小,split然后将length

df1$Z <- mapply(function(x, y)  length(intersect(x, y))/length(x), 
            strsplit(df1$X, " "), strsplit(df1$Y, " "))
df$Z
#[1] 1.0 0.5 0.0

或在中tidyverse,我们可以使用map2和应用相同的逻辑

library(tidyverse)
df1 %>% 
  mutate(Z = map2(strsplit(X, " "), strsplit(Y, " "), ~ 
                       length(intersect(.x, .y))/length(.x)))
 #             X            Y   Z
#1    mary smith   mary smith   1
#2    mary smith   john smith 0.5
#3 mike williams jack johnson   0

数据

df1 <- structure(list(X = c("mary smith", "mary smith", "mike williams"
), Y = c("mary smith", "john smith", "jack johnson")), .Names = c("X", 
"Y"), class = "data.frame", row.names = c("1", "2", "3"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列中按值表示的熊猫百分比

如何计算R中特定观测值的两个变量之间的百分比?

在dplyr中按组获取总和后计算具有行百分比的列

PostgreSQL:在两个不同表上具有分组依据和百分比的SQL请求

从两个不同数据框中的列中求和和百分比,并将结果附加到第三个数据框中

使用两个不同代码的二冲程百分比计算中的错误

Mongodb从不同的集合中获取两个值并计算百分比

在两个不同的列中满足两个条件的观察值的百分比(以r表示)

计算组中在另一列中具有特定值的行的百分比

按列中的值添加百分比列

如何按百分比将新列添加到数据框中?

R:如何从两个不同的列中获取百分比变化

使用两个表计算带有布尔值的列的百分比

显示两个SQL列中的百分比

如何在ssrs中添加百分比列

如何比较两个表的两列数据并在SQL中以百分比形式保存其差异

按行的前 n 个百分比计算列值的 N 个百分比

SQL 中两个临时列之间的百分比差异

在 R 中:找到两组列之间的百分比匹配

如何获得在熊猫的多列中按行求和的百分比?

如何为一个 Pandas Dataframe 列中的所有值添加或减去某个百分比?

获取R中两个多边形之间的重叠百分比

如何在 R Shiny 应用程序中创建具有两个反应值的堆积百分比条形图?

R:绘制具有两个条件的个人百分比的条形图

在 R 中逐列按百分比更改数据框中的数据

创建具有两个百分比的响应式圆形百分比图表

如何利用两个分类列在 R 中创建一个百分比列?

我想要熊猫中两个时间列(列格式为 hh:mm:ss)的百分比变化

通过计算 R 中两列值之间的百分比值,在条形图标签上添加百分比符号标签