,我有以下數據擴展:排序根據兩個屬性(我認爲這是電網排序)
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,矩陣數據是數量?
,我有以下數據擴展:排序根據兩個屬性(我認爲這是電網排序)
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,矩陣數據是數量?
這可以用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);
在R代碼中使用';'是否有原因? –
@docendodiscimus我以前一直在烤這個;請參閱http://stackoverflow.com/questions/29004672/using-user-defined-for-loop-function-to-construct-a-data-frame/29004774#comment46255949_29004774和http://stackoverflow.com/questions/29534780/R-計算,秩和-自動/ 29534937#comment47223633_29534937。 – bgoldst
我明白你的意思了,謝謝 –
到目前爲止,我們已經看到的數據,但有什麼代碼,你試過那沒有奏效? – hrbrmstr
你可以使用tidyr –