r - R找到有条件的正确名称
问题描述
我有以下数据data <- data.frame(names = c("ALBERT | ALBERTOS | ALBERT 2","PIERRE | PIERRE 2 | PIERRE_SECOND | PIERRE_SECOND 2"))
我想对其应用条件以找到每一行的正确名称。
-> 第一个条件:频率:“ALBERT”出现 2 次,所以第一行必须返回“ALBERT”
-> 第二个条件:最长的字符串:“PIERRE”和“PIERRE_SECOND”出现2次,所以我想保留“PIERRE_SECOND”。
我首先用分隔符“\|”分割每一行的字符串 :
data$names <- as.character(data$names); data2 <- strsplit(data$names,"\\|")
我不知道我的下一步是什么。
你有想法吗?
谢谢你的帮助!
解决方案
我们可以做的
library(dplyr)
library(tidyr)
library(stringr)
data %>%
mutate(rn = row_number()) %>%
separate_rows(names, sep="\\s*\\|\\s*") %>%
mutate(names = str_remove(names, "\\s+\\d+$")) %>%
add_count(rn, names) %>%
group_by(rn) %>%
slice(which.max(n))
推荐阅读
- google-apps-script - 需要使用 Google Script 将图像从文档复制到另一个文档
- javascript - 将文本字段保存到 MySQL 数据库中
- bash - 使用 bash 声明一个最小值后不能减去负数
- opencv - 从图像中裁剪出倾斜框的有效方法是什么?
- python - 自动检测可能的 `UnboundLocalError`s
- excel - VBA 将一个工作表复制到 MS Access 中的多个其他工作表
- bash - 使用 bashscript 循环文件不起作用
- javascript - 如何访问显示为未定义并直接引用它们但在控制台日志记录时正确显示的对象键?
- javascript - 本地复制运行但复制到网络服务器会导致 TypeError 不是函数的错误
- javascript - 是否可以重新定义基础对象 valueOf 以返回内部道具的值?