2013-01-03 50 views
1

我有用製表符分隔的信息的文件。我想追加計算值到每個特定的文件,並嘗試使用'粘貼'命令獲得相同的格式,但它分隔一行而不是選項卡。 文件看起來像(用[TAB]代表一個標籤):將數據寫入帶有製表符的文件

text[tab]=[tab]value 
text[tab]=[tab]value 

創建帶標籤的單個行不使用粘貼工作,因爲它會打印\ T:

conv <- paste("conversion", "=", (y[,2]/90.6),sep="\t") 

但是,如果我稍後嘗試添加選項卡使用:

conv <- paste("conversion", "=", (y[,2]/90.6),sep=",") 
write(conv, file = "data.dat", append = TRUE, sep = "\t") 

「轉化」 一詞在不同的行:

text[tab]=[tab]value 
text[tab]=[tab]value 
conversion 
= 
11.7991169977925 

,而不是在選項卡(我想):

text[tab]=[tab]value 
text[tab]=[tab]value 
conversion[tab]=[tab]11.80 

我相信必須有一個非常簡單的解決辦法,但我根本無法找到。謝謝!

+3

不得不問:你確定要這麼做嗎?典型的文本文件將數據與選項卡(或其他分隔符)分開,而不是關係,即您的「=」符號。我懷疑任何想要使用輸出文件的人都不會希望製表符分隔的「=」符號。爲什麼不創建列名稱,例如「名稱」和「值」? –

+0

@CarlWitthoft我之所以這樣做是因爲數據文件與我使用的跟蹤軟件相關聯,我希望將這些信息與文件關聯起來。感謝您的評論,雖然 – crazjo

回答

4

我認爲這實現了你想要使用Arun的建議。雖然,我同意Carl Witthoft的評論。

y1 <- c(10, 20) 
y2 = c(100,200) 
y <- data.frame(y1,y2) 
colnames(y) <- c('y1','y2') 

y3 <- (y[,2]/90.6) 

df <- data.frame('conversion', '=', y3) 
colnames(df) <- c('t1', 't1', 'y3') 
df 

write.table(df, file = "c:/users/Mark W Miller/simple R Programs/my.data.txt", 
      append = TRUE, sep = "\t", row.names=FALSE, col.names=FALSE, quote=FALSE) 

輸出文件是:

conversion = 1.1037527593819 
conversion = 2.2075055187638 
+0

謝謝,解決方案確實使用數據框和'write.table'而不是'寫',而包括'row.names = FALSE,col.names = FALSE,quote = FALSE' – crazjo