2013-07-30 31 views
0

我有一個表函數的問題。我顯然沒有使用正確的功能或沒有正確執行它。它將ContactCode列與12月份結合起來,我需要將它們分開。如何使用Table函數指定ContactCode是它自己的列?問題與表列1

Map = HeatMapCC[,c('ContactCode','Month')] 
Map = table(Map$ContactCode,Map$Month) 

輸出

 Dec Jan 
    101 219 315 
    103 37 47 
    104 69 72 
    110 26 60 
    112 41 24 
    113 18 28 

所需的輸出

ContactCodes Dec Jan 
    101    219 315 
    103    37 47 
    104    69 72 
    110    26 60 
    112    41 24 
    113    18 28 

> str(Map) 
'table' int [1:26, 1:2] 219 37 69 26 41 18 106 2 26 19 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : chr [1:26] "101" "103" "104" "110" ... 
    ..$ : chr [1:2] "Dec" "Jan" 
+0

我看到的東西或者是您的輸出和期望的輸出基本相同嗎? – Thomas

+1

@Thomas,將ContactCodes設置爲rownames –

+0

ContactCodes數據被分組到Dec列中。我需要他們分開。 – user2600629

回答

1

如果你的輸出稱爲Map做到以下幾點:

Map <- cbind(ContactCode=rownames(Map), Map) 

正如Hong指出的,如果rownames不是全部數字,你可能會得到不需要的強制值。在這些情況下,您可以使用data.frame代替cbind。即:

Map <- data.frame(ContactCode=rownames(Map), Map) 

注意,在這兩種情況下,如果你不喜歡rownames的外觀仍然存在,將其添加爲一列後,就可以擺脫他們:

rownames(Map) <- NULL 
Map 
    ContactCode Dec Jan 
1   101 219 315 
2   103 37 47 
3   104 69 72 
4   110 26 60 
5   112 41 24 
6   113 18 28 
+0

這將做壞事,因爲rownames實際上不是數字.... –

+0

是的,這是真的。在這種情況下,data.frame會做。我會更新答案,謝謝Hong –

+0

還有一個問題:表中的data.frame會將其轉換爲長格式(基本上'expand.grid'會給你什麼)。所以你還需要首先「取消」。 –