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

在R中如何筛选值为1的factor列并统计家族条目数量?

R语言数据处理解决方案

需求一:筛选数据框中仅包含值为1的factor类型列

可以通过遍历数据框列,同时判断列类型与列内值的情况实现:

# 假设目标数据框名为df
# 筛选符合条件的列
target_cols <- df[, sapply(df, function(col) {
  is.factor(col) && all(col == "1")
})]
  • 逻辑说明:sapply遍历每一列,先通过is.factor()判断是否为factor类型,再用all(col == "1")验证列内所有元素值均为1(factor类型取值为字符型,需匹配"1"),最后用逻辑向量筛选出目标列。

需求二:统计家族ID列的单条目家族数与总家族数

提供两种实现方式,可按需选择:

方法1:基础R函数实现

# 假设家族ID列名为family_id
# 统计每个家族的记录数
family_count_table <- table(df$family_id)

# 计算总家族数
total_families <- length(family_count_table)
# 计算仅含1条记录的家族数量
single_families <- sum(family_count_table == 1)

# 输出结果
cat("总家族数:", total_families, "\n")
cat("单条目家族数:", single_families, "\n")

方法2:dplyr包实现(简洁直观)

library(dplyr)

# 统计所需指标
family_stats <- df %>%
  count(family_id) %>%
  summarize(
    总家族数 = n(),
    单条目家族数 = sum(n == 1)
  )

# 查看结果
print(family_stats)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:01:30