如何将一维表转换为具有两列的数据帧

时间:2015-02-07 20:27:03

标签: r

好的,这可能代表我对数据帧表的无知。我有一个名为tbb的表,它由来自名为mydata的数据帧中的东西组成。 然后我使用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))

1 个答案:

答案 0 :(得分:2)

名称将转换为rownames。您可以改为:

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