2013-08-29 71 views
13

我有一個關於以txt或excel格式保存數據幀的問題。我在爲r的數據幀,但是當我將它保存:使用write.table()功能如何將數據幀保存在由列分隔的txt或excel文件中

  1. 首先,當我打開比如在Excel中保存的數據幀,所有列在一列編組,你必須separe的列Excel有丟失數據的風險。 write.csv()功能也一樣。

是否可以將所有列分隔的數據框保存在R中。謝謝。

+1

請顯示您想寫入的樣本數據。 – Metrics

+0

並使用記事本打開文件並檢查。它是否以逗號分隔?標籤?分號? – Nishanth

+0

你有沒有試過'write.csv2'? – Roland

回答

1

你應該可以用write.csv()來做到這一點。

這是一個適用於我的機器的例子。我創建了一個data.frame,用write.csv保存它,然後在Excel中打開它而沒有問題。

a <- 1:5 
b <- 6:10 
c <- 11:15 

df <- data.frame(a,b,c) 

write.csv(df, 'test2.csv') 
1

您可能正在保存的文件是正常的,您只是將其加載到Excel中不正確(很難確切知道沒有例子)。當您導入到Excel中時,可以指定分隔符和其他選項。您還可以通過在write.table中設置一些選項來簡化流程。同時檢查您的區域設置,默認分隔符可能會有所不同,具體取決於您的計算機是否認爲它位於歐洲(或某些國家)或美國(或某些其他國家/地區),可能是您的R版本和您的Excel版本不同意你所在的區域(以及因此使用哪個分隔符)。

您可能還想看看XLConnect包,它將直接創建excel文件,而無需通過文本文件。 (還有一些其他軟件包也可以寫入excel文件,但XLConnect是我擁有最佳體驗的軟件包)。

快速傳輸數據幀或矩陣擅長另一種選擇(至少在Windows上,不知道這是否適用於其他操作系統的)是使用寫表file="clipboard"sep="\t",然後在Excel窗口點擊單元格,然後做「粘貼」,數據將通過剪貼板而不是文件在Excel中。

2

write.table的默認分隔符是單個空格。雖然.txt通常用於表示電子表格,但它確實表明它是一個文本文件。如果你想要的是一個.tsv,或者一個帶有製表符分隔值的文件,那麼你可以試試write.table(x,sep="\t")。這將製表符分隔您的文件,並且當您嘗試打開文件時,excel應該選擇該文件。我真的很推薦贈送?write.table(和?read.table而我們在這裏)很好的閱讀。因爲真的,即使你的代碼是完美的,如果你讀寫數據的方式不當,那有什麼意義呢?

7

我最喜歡的方式來實現這一點(因爲我經常需要共享R中處理與非-R用戶的數據幀,也方便他們只需雙擊並讓它在Excel中很好地打開)是:

write.table(x,"filename.txt",sep="\t",row.names=FALSE) 

如上所述sep="\t"參數選項卡分隔您的文件,但我認爲除非需要,刪除行名也是有用的。

0

以下使用

安裝。包(openxlsx) 庫(openxlsx)

write.xlsx(數據幀, 「C:/Users/santoshr/Desktop/export10.xlsx」,SHEETNAME = 「Sheet 1中」,col.names = TRUE,showNA = FALSE)

相關問題