2015-01-05 3 views
1

작동하지 싱크R : 나는 아래의 코드에서 마지막 줄에서 네 번째에 문제가 올바르게

library(mlogit) 
library(foreign) 


clogit <- read.table("~/R/clogit.dat", col.names=c("mode", "ttme", "invc", "invt", "gc", "chair", 
    "hinc", "psize", "indj", "indi", "aasc", "tasc", "basc", "casc", 
    "hinca", "psizea", "z", "nij", "ni"), na.strings= "-999") 

clogit$mode.ids <-factor(rep(1:4,210), labels=c("air", "train", "bus", "car")) 

CLOGIT <- mlogit.data(clogit,shape="long", choice="mode", alt.var="mode.ids") 

res1 <- mlogit(mode~ttme+gc, data=clogit,shape="long", alt.var="mode.ids") 
summary(res1) 

res2 <- mlogit(mode~ttme+gc, data=CLOGIT) 
summary(res2) 


res3 <- mlogit(mode~ttme + gc | hinc, data=CLOGIT) 
summary(res3) 

res4 <- mlogit(mode~ttme | hinc | gc, data=CLOGIT) 

sink("~/R/res4.txt") 
    cat("Here are my results:\n") 
    summary(res4) 
sink() 

sink("~/R/res4.txt") 기능 (코드 많은 양의 미안, 난 필요가 얼마나 확실하지 오전) 마지막 줄에 "Here are my results" 줄이 저장되지만 .txt 줄에는 summary(res4) 줄이 저장되지 않습니다.

summary(res4)을 입력하면 올바른 데이터 세트가 생성되고, summary(res4)의 출력이 포함되지 않은 이유를 알 수 없습니다. 누구든지 해결책이 있습니까? 감사.

+1

이 아닌 대화 형으로 실행하고 있습니까 : 내 제안은 고양이를 사용하고 file 대상 매개 변수와 append 옵션을 capture.output 둘 것입니다? 'print (summary (res4))'를 원하십니까? – MrFlick

+0

@MrFlick 고맙습니다. 나는'summary (res4)'가 콘솔에서 같은 출력을 생성하기 때문에'print' 함수가 필요하다는 것을 깨닫지 못했습니다. – Mako212

답변

4

회귀 절차가있는 많은 요약 기능이 있으며 많은 경우 cat을 사용하면 반환되는 값에 도달하지 않습니다.

cat("Here are my results:\n", file="~/R/res4.txt") 
capture.output(summary(res4), file"~/R/res4.txt", append=TRUE)