2015-02-07 47 views
2

好吧,這可能代表我對錶格對數據框的無知。我有一個稱爲tbb的表,它由來自名爲mydata的數據框的東西組成。 然後我使用colsums做了一些彙總統計,我想他們會將colsums轉換回數據框。但是當我這樣做似乎只承認兩列一列的一個:如何將一維錶轉換爲具有兩列的數據框

這是我colsums

LSU-rRNA_Hsa  LTR1   LTR10A   LTR10B   LTR10B1 
    309   90    351    404    183 
    LTR10C  LTR10D   LTR10E   LTR10F   LTR10G 
    181   675    173    72    231    
LTR12   LTR12   LTR12B   LTR12C   
    333   359    15    144 


But when I then convert this to a dataframe I get 


LSU-rRNA_Hsa  181 
LTR1    675 
LTR10A   173 
LTR10B    72 
LTR10B1   231 
LTR10C   309 
LTR10D    90 
LTR10E   351 
LTR10F   404 
LTR10G   183 
LTR12    379 
LTR12_   273 
LTR12B    86 
LTR12C   497 

大的結果。直到我做ncol,它告訴我,我只有一列是數字,而不是LTR等等。爲什麼這和我在轉換中做錯了什麼?代碼如下:

mydata = read.table("/Users/Repeats.txt") 
#General tidy up 
mydata[4:6] <- NULL 
mydata[5] <- NULL 
names(mydata) <- c("chrom", "chromStart", "chromEnd","Rptname") 
tbb <- table(mydata$chromStart,mydata$Rptname) 
tbb[tbb == 0] <- NA 
tbb[tbb > 0] <- 1 
coll <- as.data.frame(colSums(tbb,na.rm = TRUE)) 
+0

這些可能只是您的行名。您可以隨意提取並保存它們。嘗試'row.names(coll)'。 – 2015-02-07 20:33:18

+0

啊,他們是行名。所以最終的目標是根據行名稱繪製數字。數據框調用一列colSums(tbb,na.rm = TRUE)。所以當我嘗試創建名稱爲((colSums(tbb,na.rm = TRUE)))< - c(「mycol」)+ plot(mycol)的情節時,沒有x軸 – 2015-02-07 20:40:43

回答

2

將名稱轉換爲rownames。您可以改爲執行以下操作:

result = colSums(tbb, na.rm = TRUE) 
result = data.frame(Names = names(result), Values = result) 
+0

完美謝謝Konrad – 2015-02-07 20:45:51

相關問題