You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中比较向量语句:识别同语句异评论的重复记录

在R语言中找出语句相同但评论不同的记录

嘿,我来帮你搞定这个问题!针对你给出的6条带重复语句的记录,我们可以用两种实用的R语言方法找出那些语句相同但评论不一致的条目——一种用基础R(不用额外装包),另一种用tidyverse工具包(写法更直观易读)。

第一步:先构建你的示例数据

首先我们把你提供的示例数据转换成R能处理的数据框:

# 创建示例数据框
df <- data.frame(
  语句 = c("good boy", "good student", "good employee", "good boy", "good student", "good employee"),
  评论 = c("积极反馈", "积极反馈", "积极反馈", "消极反馈", "消极反馈", "积极反馈"),
  stringsAsFactors = FALSE  # 避免把字符串转成因子
)

方法一:基础R实现(无需额外安装包)

这个方法用基础R的聚合函数和筛选来完成,逻辑清晰:

# 1. 按「语句」分组,计算每个组内不同评论的数量
comment_variety <- aggregate(评论 ~ 语句, data = df, function(x) length(unique(x)))

# 2. 筛选出那些有多种评论的语句
conflicting_texts <- comment_variety$语句[comment_variety$评论 > 1]

# 3. 从原数据中提取这些语句的所有记录
result_base <- df[df$语句 %in% conflicting_texts, ]

# 查看结果
print(result_base)

方法二:tidyverse工具包实现(更简洁直观)

如果你习惯用tidyverse的语法(比如dplyr),这个写法会更贴近自然语言,处理复杂数据时扩展性更强:

# 先安装并加载tidyverse(如果还没装的话)
# install.packages("tidyverse")
library(tidyverse)

# 分组筛选:按语句分组,留下评论种类多于1的组的所有记录
result_tidy <- df %>%
  group_by(语句) %>%
  filter(n_distinct(评论) > 1) %>%
  ungroup()

# 查看结果
print(result_tidy)

结果说明

两种方法都会输出以下结果:

语句    评论
1   good boy 积极反馈
4   good boy 消极反馈
2 good student 积极反馈
5 good student 消极反馈

这正是我们要找的——good boy和good student这两个语句,它们既有积极反馈又有消极反馈,而good employee的评论全是积极的,所以不会被筛选出来。

内容的提问来源于stack exchange,提问作者Murali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:38:37