2013-01-10 3 views
3

하나의 CSV 파일에 여러 테이블을 저장해야하며 차원 이름을 유지하는 방법을 보는데 어려움이 있습니다. 내가 찾은 가장 가까운 그리고 내가 찾은 : How to get dimnames in xtable.table output? 그는 xtable 함께 가지고있는 문제는 내가 가지고있는 문제는 write.table - dimnames 테이블 (및 prop.table 및 ftable뿐만 아니라 내가 사용하는 경우) write.table에 의해 삭제됩니다. append = T에 write.csv가 아닌 write.table을 사용하고 있습니다.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 
    } 
} 
+7

제공된 인수를 false로 사용하십시오. 'col.names = TRUE, row.names = TRUE' ... – Justin

+0

SO 검색을 시작하기 전에'? write.table'을 읽었습니까? –

+1

나는 꽤 많은 시간을 write.table 및 다른 사람들에게 보냈고 row.names, col.names에 대한 모든 조합을 시도했습니다. 하지만 필자가 원하는 행/열 이름은 아니지만 열 머리글을 의미하는 차원 이름입니다. 예 : "Q5 : age"와 "Q8 : height"의 교차 분석에서 "Q5 : age"라는 레이블이 행 옆에 나타나고 "Q8 : height"가 열 위에 나타나기를 원합니다. 축 레이블이 다른 단어입니다. 이것은 print (pt)가 보여주는 것이지만 write.table (pt ...)는 보여주지 않습니다. 내가 새로운면에서 간과 할 수있는 단순한 것일 수 있지만, 지금까지는 공정한 검색을 해왔다. –

답변

4

이 시도 : 다차원 테이블 형식의 데이터 (즉, 두 개 이상의 변수)에 대해 의도 된 I 가능성 ftable 남용있어

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

여기들. 그러나 필자가 찾은 유일한 방법은 텍스트 파일에 테이블을 겉으로보기에 원하는 형식으로 쓰는 것입니다.

+1

+1 좋은 답변입니다. 이제 OP에서 원하는 것을 분명히했습니다. 'ftable()'을 알지 못했습니다. 편집은 예를 OP가 원래 갖고 있던 것과 조금 더 가깝게 만들고 CSV를 출력하려고했습니다. –

+0

감사합니다. 조란, 그게 내가 찾고 있던 것입니다. 불행히도 write.ftable은 sep 인수를 지원하지 않으므로 CSV는 수행하지 않지만 해결 방법을 찾을 수 있습니다. 이 질문은 제가 당연히 생각한 것처럼 간단하지 않은 것 같습니다. –

관련 문제