在R中,将列的变量输出到文件中的单个行中?

时间:2016-08-28 05:26:13

标签: r

这是数据框

df1 <- data.frame("Identifier" = sample(100001:100010, 6, replace = F), 
               y = sample(rnorm(10), 6, replace = T), 
               z = sample(rnorm(10), 6, replace = T))

当我想输出一些信息时,将其保存到一个文件中,我使用

write(c(nrow(df1), 2, 1), file="GSE49995_cls.txt", sep = "\t")
write(df1$y, file="GSE49995_cls.txt", append = T, sep = "\t")
write(c("df1$y","df1$x"), file="GSE49995_cls.txt", append = T, sep = "\t")

当我打开文件时,GSE49995_cls.txt,

6 2 1
1.226647    -0.3621273  0.5439381   -1.16689    -0.3621273
-0.3621273
df1$y
df1$x

但我想以这种方式输出

6 2 1
1.226647    -0.3621273  0.5439381   -1.16689    -0.3621273   -0.3621273
df1$y   df1$x

每个单词都以制表符空格分隔。有人有想法吗?

1 个答案:

答案 0 :(得分:1)

您需要更改ncolumns的{​​{1}}参数,默认设置为

write()

所以你的前两个调用将转到5,因此第二个调用将转到第二行。你的第三个调用是1,因为它是一个字符,因此包裹到第二行。将第一个更改为ncolumns = if (is.character(x)) 1 else 5 ,将第二个更改为length(df1$y)将解决问题。

2

运行此代码后,我得到一个文件f <- "GSE49995_cls.txt" write(c(nrow(df1), 2, 1), file = f, sep = "\t") write(df1$y, file = f, ncolumns = length(df1$y), append = TRUE, sep = "\t") write(c("df1$y","df1$x"), file = f, ncolumns = 2, append = TRUE, sep = "\t") ,如下所示。

GSE49995_cls.txt

或者,您可以使用6 2 1 0.7413901 0.9874447 -0.2382336 -0.9549439 0.9874447 -0.5963106 df1$x df1$y ,而不必担心这一点。

cat()