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

如何在R中按分类变量实现行间数值相减以修正动词计数

R数据处理方案:按文件名分组修正时态体动词计数

核心逻辑

  • 以filename为分组依据,确保每个文本的时态体数据独立计算
  • 针对past_simple类别,用其原始计数减去同文本内past_perfect和past_progressive的计数之和,其他类别保持原数值,完全不受行序影响

代码实现(基于dplyr)

假设你的tibble数据名为ta_data,包含filename(文件名)、TA(时态体类别)、n(动词计数)三列:

直接修正原计数列

library(dplyr)

# 分组修正计数
ta_data_fixed <- ta_data %>%
  group_by(filename) %>%
  mutate(
    n = case_when(
      TA == "past_simple" ~ n - sum(n[TA %in% c("past_perfect", "past_progressive")], na.rm = TRUE),
      TRUE ~ n  # 其他时态体保留原数值
    )
  ) %>%
  ungroup()

保留原计数,生成修正后新列

如果不想覆盖原始n列,可以新增n_fixed列存储修正后的值:

ta_data_fixed <- ta_data %>%
  group_by(filename) %>%
  mutate(
    n_fixed = case_when(
      TA == "past_simple" ~ n - sum(n[TA %in% c("past_perfect", "past_progressive")], na.rm = TRUE),
      TRUE ~ n
    )
  ) %>%
  ungroup()

关键细节说明

  • group_by(filename):将数据按文件名拆分,每个文件的计算互不干扰
  • sum(..., na.rm = TRUE):如果某文件缺少past_perfect或past_progressive类别,na.rm = TRUE会自动忽略缺失值,避免计算出错
  • case_when():精准匹配需要修正的时态体类别,其他类别保持原样,逻辑清晰易维护

结果验证

可以筛选单个文件查看修正效果:

# 替换为你要检查的文件名
filter(ta_data_fixed, filename == "sample_text.txt")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:02:33