首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在tibble的所有列中进行行向部分匹配

在tibble的所有列中进行行向部分匹配
EN

Stack Overflow用户
提问于 2022-05-20 13:17:25
回答 1查看 27关注 0票数 1

假设下面的tibble

代码语言:javascript
复制
tibble(
  examform1 = c("Bla bla bla pass/fail", "Bla bla bla 7 point scale", "Bla bla pass fail"),
  examform2 = c("passfail bla", "7pointscale bla", "Bla bla")
)

# A tibble: 3 × 2
  examform1                 examform2      
  <chr>                     <chr>          
1 Bla bla bla pass/fail     passfail bla   
2 Bla bla bla 7 point scale 7pointscale bla
3 Bla bla pass fail         Bla bla     

我希望计数字符串在以下两个向量中的出现,特别是,我希望有2列,其中一列计数向量传递中任何字符串中的出现数,另一列同样用于向量比例尺。

代码语言:javascript
复制
pass <- c("pass/fail", "pass fail", "passfail")
scale <- c("7 point scale", "7pointscale")

我有一个非常大的数据,并希望对所有变量执行操作,因为我不确定哪些变量在我需要的信息存储位置方面是重要的。它应该是这样的:

代码语言:javascript
复制
# A tibble: 3 × 4
  examform1                 examform2       occurence_pass pass_scale
  <chr>                     <chr>                    <dbl>      <dbl>
1 Bla bla bla pass/fail     passfail bla                 2          0
2 Bla bla bla 7 point scale 7pointscale bla              0          1
3 Bla bla pass fail         Bla bla                      1          0

我可能会把所有的变量粘贴在一起,然后从那里继续下去--但是我认为这会很慢,因为我的真正的字符串真的很长,而且我不知道如何在粘贴之后继续。

任何帮助都是非常感谢的,我希望我的问题明确:-)!

EN

Stack Overflow用户

回答已采纳

发布于 2022-05-20 13:24:03

您可以按行应用grepl,即,

代码语言:javascript
复制
df$occurence_pass <- colSums(apply(df, 1, function(i)grepl(paste(pass, collapse = '|'), i)))
df$pass_scale <- colSums(apply(df, 1, function(i)grepl(paste(scale, collapse = '|'), i)))

df
# A tibble: 3 x 4
  examform1                 examform2       occurence_pass pass_scale
  <chr>                     <chr>                    <dbl>      <dbl>
1 Bla bla bla pass/fail     passfail bla                 2          0
2 Bla bla bla 7 point scale 7pointscale bla              0          2
3 Bla bla pass fail         Bla bla                      1          0
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72319593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档