使用制表符将数据写入文件

4

我有一些用制表符分隔的信息文件。我想要在每个特定的文件中附加计算出的值,并尝试使用“paste”命令获得相同的格式,但它会将一行分隔开而不是一个制表符。 文件看起来像这样(其中[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")

"

conv" 每个单元格单独一行:

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
请问您确定要这样做吗?典型的文本文件使用制表符(或其他分隔符)而非符号“=”来分隔数据,也就是说,我怀疑任何想要使用您的输出文件的人都不希望其中有制表符和“=”符号。为什么不创建列名,例如“名称”和“值”呢? - Carl Witthoft
@CarlWitthoft 我这样做的原因是因为数据文件与我使用的跟踪软件相关联,我希望将此信息与文件关联起来。感谢您的评论。 - crazjo
1个回答

7

我认为这个实现使用了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

谢谢,解决方案确实是使用数据框和'write.table'而不是'write',同时包括'row.names=FALSE, col.names=FALSE, quote=FALSE'。 - crazjo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接