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")

这只会将 min 写入一个文本文件。如何将所有 mean、sd 和 min 写入一个文本文件?

4

3 回答 3

6

如果mean,sdmin的长度相同,则可以将所有变量放在一个数据帧中,然后写入文件。

write.table(data.frame(mean,sd,min), "C:\\Users\\period.txt", sep="\t")
于 2013-03-10T11:11:39.457 回答
5

在比@Didzis 的答案更普遍的意义上,您可以append = TRUE在调用write.table. 从以下文档write.table

附加:逻辑。仅当“文件”是字符串时才相关。如果为“真”,则将输出附加到文件中。如果为“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)
于 2013-03-10T11:16:49.780 回答
2

没有直接关系,但如果你不介意写入文本文件,你可以使用RdataR 文件格式,它以二进制存储数据,更紧凑的方式,但与其他软件不兼容。

您可以通过这种方式将多个对象保存在同一个Rdata文件中:

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

然后在另一个 R 会话中,您可以执行以下操作:

load("myfile.rda")

您的 R 会话可以访问之前保存的对象。

于 2013-03-10T12:01:31.557 回答