我需要在一个CSV文件中保存大量表格,并且很难看到如何保留维度名称。我搜索了SO,我找到的最近的是: How to get dimnames in xtable.table output? 他对xtable的问题是我用write.table得到的问题 - 表中存在dimnames(如果我使用的话,还有prop.table和ftable)但是被write.table删除了。我正在使用write.table而不是write.csv for append = T.
数据集来自调查,目的是创建一组完整的交叉表,带有标记的轴。在这种情况下,实际的行/列标签并不重要,只有维度标签。我是R的新手,所以希望我没有错过任何明显的东西。
d<-read.csv('dataset.csv') # dataset with column headings, no row labels
cat('BEGIN\n',file='xtabs.csv')
for (i in 1:ncol(d)) {
for (j in 1:ncol(d)) {
cat(paste('\ni=',i,' j=',j,'\n'),file='xtabs.csv',append=T)
t<-table(d[,i],d[,j],dnn=c(names(d[i]),names(d[j])))
pt<-prop.table(t,1)
write.table(pt,'xtabs.csv',sep=',',dec='.',row.names=F,col.names=F,append=T)
print(pt) # shows dimnames in the console as expected
}
}
答案 0 :(得分:4)
试试这个:
tbl <- with(warpbreaks, table(wool, tension))
pt <- prop.table(tbl)
write.ftable(ftable(pt),file = "~/Desktop/table.csv", sep = ",",
quote = FALSE)
我可能在这里滥用ftable
,它们用于多维表格数据(即两个以上的变量)。但这是我发现的唯一能将表格写入文本文件(看似)你想要的格式。