write.table未输出行名称的标题

write.table未输出行名称的标题,r,matrix,R,Matrix,我尝试将矩阵写入csv,同时保留行名(c.f.) 但是,当我使用write.table()执行此操作时,所有列都会向左移动(因此第一个数据列标题显示在rownames列的上方) 我尝试了以下操作(手动添加额外的列): 我不知道这个错误是什么意思。参数是一个列表而不是一个向量吗?如果其他所有操作都失败,您可以将行名设置为列,例如。g res <- transform(merged.pca$rotation, rowname=rownames(merged.pca$rotation)) wri

我尝试将矩阵写入csv,同时保留行名(c.f.)

但是,当我使用write.table()执行此操作时,所有列都会向左移动(因此第一个数据列标题显示在rownames列的上方)

我尝试了以下操作(手动添加额外的列):


我不知道这个错误是什么意思。参数是一个列表而不是一个向量吗?

如果其他所有操作都失败,您可以将行名设置为列,例如。g

res <- transform(merged.pca$rotation, rowname=rownames(merged.pca$rotation))
write.table(res, "rotation.csv", row.names=FALSE)

res不确定我是否完全理解,但我的镜头是:

您只需使用

write.csv( merged.pca$rotation, file = "rotation.csv", row.names = TRUE )
您可以使用


x根据
write.table
的帮助,您要指定
col.names=NA

write.table(merged.pca$rotation, file="rotation.csv", col.names=NA, sep=",")

是的,我觉得这也有点傻。请注意,
write.csv
将自动为您执行此操作。

此解决方案保存列结构(即Excel)和名称:

在MacRoman中编写文件,以便在Mac Excel 2004/8中简单使用
write.csv(x,file=“foo.csv”,fileEncoding=“macroman”)

或适用于Windows Excel 2007/10
write.csv(x,file=“foo.csv”,fileEncoding=“UTF-16LE”)

请向我们提供一些示例数据。我想你想用
paste()
代替
c()
,为什么我要粘贴()?我只是想在所有常规列(PC1,PC2,…)前面加一个列。输出是您从prcomp获得的,您可以将任何有效的矩阵放在那里,例如USArrestsOK,我已经将USArrests添加到代码中,并且还为可行的解决方案提供了示例输出+1。不过,似乎应该有更直截了当的事情。事实上,我以为我只是错过了一些东西/愚蠢,我一定是瞎了——不知怎的,我在dosc中错过了这一点。我接受这一个,因为它是我的问题的一个确切的答案。@ Hoooi是否有可能为ROWNITS列添加一个名称而不是空白?也就是说,把它叫做“ID”而不是空白。。。
res <- transform(merged.pca$rotation, rowname=rownames(merged.pca$rotation))
write.table(res, "rotation.csv", row.names=FALSE)
write.csv( merged.pca$rotation, file = "rotation.csv", row.names = TRUE )
x <- read.csv( "rotation.csv" )
row.names( x ) <- x[,1]
x <- as.matrix( x[-1] )
write.table(merged.pca$rotation, file="rotation.csv", col.names=NA, sep=",")