2013-03-10 176 views
3

我有兩個文件,我想根據對方做一些計算。如何將兩個變量寫入一個文本文件?

文件1:

conne <- file("C:\\bias.bin","rb") 
cor<- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE) 

文件2:

conne2 <- file("C:\\me1440s.bin","rb") 
bioms<- readBin(conne2, integer(), size=1, n=1440*720, signed=F) 

計算:

mean=tapply(cor, bioms, mean, na.rm=TRUE) 
sd=tapply(cor, bioms, sd, na.rm=TRUE) 
min=tapply(cor, bioms, min, na.rm=TRUE) 

寫入一個文本文件:

write.table(min, "C:\\Users\\period.txt", sep="\t") 

這將只寫最小的一個文本文件。我怎樣才能將所有的mean,sd和min都寫入一個文本文件?

回答

6

如果mean,sdmin長度相同,則可以將所有變量放在一個數據幀中,然後寫入文件。

write.table(data.frame(mean,sd,min), "C:\\Users\\period.txt", sep="\t") 
5

在比@ Didzis的回答更廣泛的意義上說,你可以在調用中使用append = TRUEwrite.table。從文檔write.table

append:logical。只有'文件'是一個字符串纔有意義。如果 'TRUE',輸出將附加到文件。如果'FALSE',該名稱的任何 現有文件被銷燬。

所以,你可以調用write.table多次,並獲得所有輸出在一個文件中:

write.table(mean, "C:\\Users\\period.txt", sep="\t") 
write.table(sd, "C:\\Users\\period.txt", sep="\t", append = TRUE) 
write.table(min, "C:\\Users\\period.txt", sep="\t", append = TRUE) 
+0

爲什麼我得到這個'警告消息: 在write.table(分鐘,「C:\\ period2.txt」: 追加列名file' – 2013-03-10 11:58:45

+0

我覺得他們寫的數據框是因爲SD更好意思是,將被寫入文本文件中作爲不同的列,而下面的解決方案將只顯示每一個爲x和值。 – 2013-03-10 12:02:43

2

沒有直接關係,但是如果你不小心把寫入一個文本文件,你可以使用Rdata R文件格式,該格式以二進制,更緊湊的方式存儲數據,但與其他軟件不兼容。

save(obj1, obj2, obj3, file="myfile.rda") 

然後在另一個R對話,你可以這樣做::

您可以在同一個Rdata文件這種方式保存幾個對象

load("myfile.rda") 

與先前保存的對象將可以訪問到您的R會議。