首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据每组的数量添加列

问根据每组的数量添加列
EN

Stack Overflow用户
提问于 2021-10-08 05:57:05
回答 1查看 44关注 0票数 1

我想添加新闻栏目的每组在类型的计数。我的数据帧是这样的:

代码语言:javascript
复制
#   color  type  
#   black chair       
#   black chair   
#   black sofa 
#   pink  plate
#   pink  chair
#   red   sofa    
#   red   plate   

我正在寻找类似这样的东西:

代码语言:javascript
复制
#   color  chair sofa plate 
#   black    2     1   0
#   pink     1     0   1
#   red      0     1   1

我使用了table(df$color, df$type),但是结果没有列'color‘的名称

EN

回答 1

Stack Overflow用户

发布于 2021-10-08 05:57:36

我们可以使用来自base R的table

代码语言:javascript
复制
table(df)

或使用pivot_wider

代码语言:javascript
复制
library(tidyr)
pivot_wider(df, names_from = type, values_from = type, 
       values_fn = length, values_fill = 0)
# A tibble: 3 × 4
  color chair  sofa plate
  <chr> <int> <int> <int>
1 black     2     1     0
2 pink      1     0     1
3 red       0     1     1

或使用dcast

代码语言:javascript
复制
library(data.table)
dcast(setDT(df), color ~ type, value.var = 'type', length, fill = 0)

数据

代码语言:javascript
复制
df <- structure(list(color = c("black", "black", "black", "pink", "pink", 
"red", "red"), type = c("chair", "chair", "sofa", "plate", "chair", 
"sofa", "plate")), class = "data.frame", row.names = c(NA, -7L
))
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69491122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档