如何基于现有R语言data.frame创建统计品牌鞋款数量的新数据框?
实现方法
首先注意:你原始代码里的Shoe1、Brand1这类值需要加引号(作为字符型),否则会被识别为未定义的变量,修正后的原始数据代码如下:
data <- data.frame(Shoes= c("Shoe1", "Shoe2", "Shoe3", "Shoe4", "Shoe5"), Brand= c("Brand1", "Brand2", "Brand3", "Brand1", "Brand2"))
下面提供两种常用实现方式:
方法一:基础R原生函数(无需额外安装包)
利用table()函数统计品牌出现频率,再转换为数据框并重命名列:
# 统计品牌频次 brand_freq <- table(data$Brand) # 转换为数据框并修改列名 newdata <- as.data.frame(brand_freq) colnames(newdata) <- c("Brand", "Amount")
方法二:使用dplyr包(适合复杂数据处理场景)
先安装并加载dplyr包,通过分组汇总实现:
# 首次使用需安装包 # install.packages("dplyr") library(dplyr) newdata <- data %>% group_by(Brand) %>% # 按品牌分组 summarise(Amount = n()) %>% # 统计每组的鞋款数量 ungroup() # 取消分组(可选,视后续操作需求)
两种方法最终都能得到你预期的newdata数据框,包含品牌名称及对应鞋款数量。
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

