删除R输出中的反引号

时间:2013-05-08 00:37:01

标签: r

我有一些变量,R中的lm会自动用反引号/后引号括起来,例如:名称中有冒号的变量。

经过一些处理后,我试图用write.table写出线性模型的变量和系数。不幸的是,反写也被写出来了。

如何防止这些反复写入?

给出一个简单但不切实际的例子:

d <- data.frame(`1`=runif(10), y=runif(10), check.names=F)
l <- lm(y ~ `1`, d)
write.table(data.frame(l$coefficients), file="lm.coeffs", quote=F, sep="\t", col.names=F)

文件lm.coeffs - 很明显 - 在输出的第一列中有`1`而不是1。在其他一些脚本的后处理之外,如何从输出中删除反引号?

1 个答案:

答案 0 :(得分:9)

您可以在R中执行后处理。而不是文件,使用capture.output将输出存储在变量中。使用gsub删除反引号。最后,使用cat

将输出打印到文件
report <- capture.output(write.table(data.frame(l$coefficients),
                         quote = FALSE, sep = "\t", col.names = FALSE))

cat(gsub("`", "", report), sep = "\n", file = "lm.coeffs")