- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 across
根据跨多个列的 str_detect
结果创建一个新列。
例如,在下面的测试数据中,我想在以“job”开头的列中搜索“No job”,然后如果在任何列中检测到该字符串则返回 1,否则返回 0不是。
test_data <- data.frame("job1" = c('Sales','Baker','Blacksmith','Brewer'),
"job2" = c('Mailman','Jockey','Jobhunter',"No job"),
"id" = c("id_1", "id_2", "id_3", "id_4"))
# Output I'd like:
# job1 job2 id no_job
#1 Sales Mailman id_1 0
#2 Baker Jockey id_2 0
#3 Blacksmith Jobhunter id_3 0
#4 Brewer No job id_4 1
我知道我可以合并
以“job”开头的列,然后像这样在新列上使用str_detect
:
test_data2 <- test_data %>%
unite(col = "all_jobs", starts_with("job"), sep = ", ", remove = FALSE) %>%
mutate(no_job = if_else(str_detect(all_jobs, "No job"), 1, 0))
...但我想知道是否有办法使用 across
来做同样的事情。我已经尝试了以下内容的变体,但还没有成功。
test_data2 <- test_data %>%
mutate(no_job = if_else(across(starts_with("job"), str_detect(., "No job")), 1, 0))
最佳答案
一个选项可能是:
test_data %>%
rowwise() %>%
mutate(no_job = +any(str_detect(c_across(-id), "No job")))
job1 job2 id no_job
<fct> <fct> <fct> <int>
1 Sales Mailman id_1 0
2 Baker Jockey id_2 0
3 Blacksmith Jobhunter id_3 0
4 Brewer No job id_4 1
关于r - Str_detect 多列使用跨,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63399181/
我有像c1c5, c5c1, c4c3 ...这样的colnames ... 我想检索所有以 c4 和 c5 开头或结尾的 colnames。 我试过使用以下方法: str_detect(colnam
我想使用 across 根据跨多个列的 str_detect 结果创建一个新列。 例如,在下面的测试数据中,我想在以“job”开头的列中搜索“No job”,然后如果在任何列中检测到该字符串则返回 1
我有两个数据集,一个是全名,一个是名字和姓氏。 library(tidyverse) (x = tibble(fullname = c("Michael Smith",
获取字符串列表: strings % .[!map_lgl(., str_detect, avoid)] [1] "qwe_xyz" "XYZ" 不过我想做的是指定几个子字符串 avoid_2
我想过滤掉列中包含字符串的行。我正在使用 tidyverse 解决方案。我遇到的问题是 str_detect 似乎也在寻找 NA 结果,因此这些也被我的过滤器删除了: df1 = data.frame
我目前有一个具有以下结构的 data.frame (X): Number Observation 1 34 2 Example 3 Example34% 4 Example 5 3
如您所见,我正在处理一些严重的脏数据。这段代码可以工作,但看起来有点笨拙。有没有一种更高效、更动态的方式来实现最终结果而不需要那么多编码? 我必须分阶段执行此操作,首先标记内容类型,然后利用内容类型将
如您所见,我正在处理一些严重的脏数据。这段代码可以工作,但看起来有点笨拙。有没有一种更高效、更动态的方式来实现最终结果而不需要那么多编码? 我必须分阶段执行此操作,首先标记内容类型,然后利用内容类型将
我正在使用功能 str_detect从 tidyverse 过滤掉与列表中任何字符串开头匹配的数据帧的行。目前,正在使用 |在我的 filter 中的每一列之间过滤时的语句陈述。有什么方法可以利用st
我正在尝试使用 str_detect 检测字符串是否包含特定模式。我的图案是一系列“....” - 确切的点数未知。我正在尝试使用 str_detect 如下.... 但是,在这种特殊情况下,str_
样本数据 files.in.path = c("a.4.0. name 2015 - NY.RDS", "b.4.0. name 2016 - CA.RDS",
我正在尝试使用 str_detect 的简写和 &至 filter一个数据框: library(tidyverse) df % filter(str_detect(type, "age") & s
我想找到多个字符串并将其放入一个变量中,但是我不断收到错误消息。 queries % filter(str_detect(payload, "create" || "drop" || "select"
我有以下数据集: df % filter(str_detect(a, "F")) 但是我得到了这个 Error in stri_detect_regex(string, pattern, op
我有以下数据集: df % filter(str_detect(a, "F")) 但是我得到了这个 Error in stri_detect_regex(string, pattern, op
我有一个 Shiny 的应用程序,我希望每次用户在先前的 selectInput 中选择包含特定单词(但不是确切单词)的字符串时,都会出现一个条件面板。这是我目前拥有的: library(shiny)
我在 R 中有一个字符串: c("FLT1", "FLT1P1", "FLT1-FLT2", "SGY-FLT1, GPD") 我想保留所有具有 FLT1 的匹配项,但在添加其他字母数字 字符时不保留
我正在尝试使用 dplyr::filter()、stringr::str_detect 和 对字符列 a 进行子集化>magrittr - 使用正则表达式捕获两位或更多数字的管道。 这似乎只适用于数字
我想使用 filter() 和 str_detect() 匹配多个模式来过滤数据帧,而无需多个 str_detect() 函数调用。在下面的示例中,我想过滤数据框 df仅显示包含字母 a 的行f和 o
我们正在尝试解析包含 unicode 的名称向量,但得到了一些奇怪的结果。当我们搜索 \xf6 时,下面的向量返回三个,而不是两个 TRUE 值。我们缺少什么? library(tidyverse)
我是一名优秀的程序员,十分优秀!