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

在R中按列统计值出现次数并将另一列唯一值转为列表

在R中按动物分组统计并生成唯一名称列表

首先构造你提供的示例数据:

df <- data.frame(
  animal = c("dog", "cat", "dog", "cat", "cat", "rabbit"),
  name = c("Airbud", "Tom", "Marley", "Salem", "Salem", "bugs"),
  stringsAsFactors = FALSE
)

使用dplyr包可以轻松实现你要的功能,代码如下:

library(dplyr)

# 生成包含列表列的结果
result <- df %>%
  group_by(animal) %>%
  summarize(
    name_list = list(unique(name)),  # 提取每组的唯一名称并保存为列表
    animal_count = n()               # 统计每组的总数量
  ) %>%
  ungroup()  # 取消分组状态

# 查看结果
print(result)

如果想要让name_list显示成你示例中的字符串格式(比如['Airbud','Marley']),可以用下面的代码调整:

library(dplyr)

# 生成字符串形式的名称列表
result_formatted <- df %>%
  group_by(animal) %>%
  summarize(
    name_list = paste0("['", paste(unique(name), collapse = "','"), "']"),
    animal_count = n()
  ) %>%
  ungroup()

print(result_formatted)

核心逻辑说明:

  • group_by(animal) 指定按animal列分组
  • summarize 里,unique(name)提取每组的不重复名称,用list()包装成列表列;n()直接统计每组的总行数
  • 若要格式化显示成字符串形式的列表,用paste()完成拼接即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:39:35