簡體   English   中英

R:將復雜的數據幀原樣寫入文件

[英]R: write complex data frame as is to a file

我有以下數據框:

>results[,1:4]

           N=9                                                                      N=8                                            N=7                                                      N=6
HPS4\n(244,492) APOL3\n(235,486)\nAPOL5\n(200,398)\nCELSR1\n(213,432)\nCLTCL1\n(204,402) CPT1B,CHKB-CPT1B\n(175,344)\nPLXNB2\n(205,412) FAM118A\n(121,240)\nMYO18B\n(169,345)\nSEC14L4\n(99,221)

N = 9,N = 8,N = 7 ...直到N = 1是第一行。 第二行具有逗號和換行符分隔的值。 我的數據框的尺寸為:

dim(results)
[1] 2 9

class(results)
[1] "data.frame"

問題是我嘗試使用不同的分隔符值以及WriteXLS(WriteXLS包的)使用write.table(),但是每次輸出文件都被弄亂了。 第一行輸出很好,但是第二行被附加在前2-3列中。 基本上,該表不會按原樣輸出。 我想知道可以在不丟失列之間的分隔符的情況下編寫數據框的替代方法。

dput(results)
structure(list(X9 = c("N=9", "HPS4\n(244,492)"), X8 = c("N=8", 
"APOL3\n(235,486)\nAPOL5\n(200,398)\nCELSR1\n(213,432)\nCLTCL1\n(204,402)"
), X7 = c("N=7", "CPT1B,CHKB-CPT1B\n(175,344)\nPLXNB2\n(205,412)"
), X6 = c("N=6", "FAM118A\n(121,240)\nMYO18B\n(169,345)\nSEC14L4\n(99,221)"
), X5 = c("N=5", "MOV10L1\n(97,230)"), X4 = c("N=4", "CCDC157\n(95,212)\nCECR2\n(121,272)\nSEC14L3\n(93,178)\nTTLL12\n(128,241)\nTXNRD2\n(144,302)\nYDJC,CCDC116\n(108,224)"
), X3 = c("N=3", "CARD10\n(78,165)\nEFCAB6\n(38,69)\nIL17RA\n(59,112)\nPLA2G3\n(69,134)\nRIBC2\n(84,163)\nRTDR1\n(1,2)\nSLC2A11\n(21,53)\nTEX33\n(39,73)\nTTC38\n(14,30)"
), X2 = c("N=2", "APOBEC3H\n(109,233)\nBRD1\n(33,67)\nGNB1L\n(12,31)\nMN1\n(26,52)\nPRAME\n(15,38)\nPRR14L\n(53,109)\nSCARF2\n(80,193)\nSMC1B\n(30,55)\nSUN2\n(73,128)\nTBC1D10A\n(53,129)\nTUBGCP6\n(81,160)\nTYMP,SCO2\n(41,88)"
), X1 = c("N=1", "ALG12\n(58,107)\nAPOBEC3G\n(31,67)\nARVCF\n(7,20)\nBCL2L13\n(6,13)\nBCR\n(9,19)\nCABIN1\n(51,99)\nCDC42EP1\n(5,7)\nCDPF1\n(36,56)\nCRELD2\n(87,159)\nCRYBA4\n(16,26)\nCSNK1E\n(0,1)\nEFCAB6,EFCAB6-AS1\n(1,0)\nEMID1\n(17,26)\nFAM109B\n(0,2)\nFAM227A\n(0,5)\nFAM83F\n(0,4)\nGAB4\n(19,40)\nGGT1,FAM211B\n(0,4)\nGGT5\n(23,37)\nHDAC10\n(35,71)\nISX\n(32,59)\nKCTD17\n(0,0)\nMICAL3\n(6,15)\nPACSIN2\n(5,9)\nPEX26\n(14,20)\nPIWIL3\n(36,60)\nPNPLA3\n(96,171)\nPNPLA5\n(20,19)\nPPP6R2\n(3,5)\nSCUBE1\n(2,3)\nSELO\n(10,18)\nSEZ6L\n(14,30)\nSGSM1\n(14,37)\nTBX1\n(99,184)\nTCN2\n(31,57)\nTMPRSS6\n(4,17)\nTRMU\n(39,84)\nZBED4\n(1,0)\nZNF74\n(1,9)"
)), .Names = c("X9", "X8", "X7", "X6", "X5", "X4", "X3", "X2", 
"X1"), row.names = c(NA, -2L), class = "data.frame")

是我期望的輸出。

我只想用任何格式 制作文件 ,但要完全代表 鏈接中顯示 的類型 我不想在R或任何其他軟件中再次導入它。

如果我只是:

> write.csv(results,"results.csv")

然后閱讀Open / Libre Office電子表格:

在此處輸入圖片說明

看起來像您的電子表格示例輸出。 砍掉標題,然后根據需要將第一列剔除。

你有嘗試過嗎? Excel會失敗嗎? 改為安裝Open / Libre office。

請注意,您的保管箱示例在“ ALG12(58,107)”之間沒有換行符,而示例數據卻沒有換行符,因此我的J3單元格塞滿了並掉到了底部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM