【问题标题】:Extended Sorting according to two attributes (I think it is grid sorting) [duplicate]根据两个属性扩展排序(我认为是网格排序)[重复]
【发布时间】:2016-06-20 10:03:11
【问题描述】:

我有以下数据:

id       brand       quantity
1        a           2
1        b           1
2        b           5
3        c           10
2        d           11
3        a           1
4        b           2

输出应该是

   a  b  c  d
1  2  1  0  0
2  0  5  10 11
3  1  0  10 0
4  0  2  0  0

如何在R语言中获得这种类型的排序,其中列名是品牌类型,行名是客户ID,矩阵数据是数量?

【问题讨论】:

  • 到目前为止,我们已经看到了数据,但是您尝试过哪些代码不起作用?

标签: r sorting


【解决方案1】:

这可以通过reshape() 和一些事后修复来完成:

res <- reshape(df,dir='w',timevar='brand')[-1L];
names(res) <- sub('^quantity\\.','',names(res));
res[is.na(res)] <- 0L;
res;
##   a b  c  d
## 1 2 1  0  0
## 3 0 5  0 11
## 4 1 0 10  0
## 7 0 2  0  0

数据

df <- data.frame(id=c(1L,1L,2L,3L,2L,3L,4L),brand=c('a','b','b','c','d','a','b'),quantity=c(
2L,1L,5L,10L,11L,1L,2L),stringsAsFactors=F);

【讨论】:

猜你喜欢
  • 2014-08-02
  • 2012-12-24
  • 2020-09-22
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
相关资源
最近更新 更多