3

1つのCSVファイルに多数のテーブルを保存する必要があり、ディメンション名を保持する方法がわかりません。SOを検索したところ、最も近いものは次 のとおりでした。xtable.table出力でdimnamesを取得する方法は? 彼がxtableで抱えている問題は、私がwrite.tableで抱えている問題です。dimnamesはテーブルに存在しますが(私がそれを使用する場合はprop.tableとftableも)、write.tableによって削除されます。append=Tにwrite.csvではなくwrite.tableを使用しています。

データセットは調査からのものであり、目的は、ラベル付きの軸を使用してクロス集計の完全なセットを作成することです。この場合、実際の行/列ラベルは重要ではなく、ディメンションラベルのみが重要です。私は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
    }
}
4

1 に答える 1

4

これを試して:

tbl <- with(warpbreaks, table(wool, tension))
pt <- prop.table(tbl)
write.ftable(ftable(pt),file = "~/Desktop/table.csv", sep = ",",
             quote = FALSE)

ftableここでは、多次元の表形式データ (つまり、3 つ以上の変数) を対象とした s を悪用している可能性があります。しかし、私が見つけたのは、(一見) 必要な書式設定でテーブルをテキスト ファイルに書き込む唯一のものです。

于 2013-01-10T16:46:52.390 に答える