2012-06-08 2 views
1

나는 수백 개의 행을 가진 mytable이라는 4 열 데이터 프레임을 가지고 있습니다. 이 같이 그것은 같은데이터 프레임을 .txt 파일로 싱크

id   name     count  rate 
234  uert [email protected] erwafrw23 weq 34   2 
324  awrt%rw-fref-sfr-32 eq 78   4 
329  jiowerfhguy qwhrb   90   8 
123  234huib|f|wer fwfqwasgre 54   3 

그렇게 보이는, 이름에 공백 및 특수 문자가 있습니다. 그래서 write.table을 사용하여 data.frame을 저장할 수 없습니다. 나는

sink('myfile.txt') 
print(mytable,right=F) 
sink() 

을 시도하지만 때로는 이름이 네 개의 열이, 같은 페이지에 함께 표시 할 수 없습니다 즉, 세 번째 또는 네 번째 열은 다음 페이지로 실행할 수 있도록 길이의 문제를 만났다.

테이블의 너비를 조정할 수있는 방법이 있습니까? .txt 파일로 가라 앉습니까? 또는 sink() 외에도 다른 코드를 사용하여 데이터 프레임을 .txt 파일에 저장할 수 있습니까? 감사.

답변

3

write.table()과 같아야합니다. 당신의 name 컬럼에 표시되지 ",", 또는 뭔가처럼 구분자를 지정 : 당신은 파일과 콘솔 출력 사이의 차이에 대해 혼란스러워 보인다

my.df <- data.frame(ID=c(234,324,329,123), 
     name = c("uert [email protected] erwafrw23 weq"," awrt%rw-fref-sfr-32 eq","jiowerfhguy qwhrb","234huib|f|wer fwfqwasgre"), 
     count = c(34,78,90,54), rate = c(2,4,8,3)) 

    write.table(my.df, file = "my.df.txt", sep = ",", col.names = colnames(my.df)) 

    # read it back in 
    my.df2 <- read.table(file = "my.df.txt",sep = ",", header = TRUE, stringsAsFactors = FALSE) 

    all(my.df == my.df2) 
    TRUE 
1

. write.table이있는 행의 너비에는 제한이 없으며, 적어도 정상적으로 사용할 때는 접근하지 않는 것이 좋습니다. options(width=72)을 사용하여 콘솔 화면 너비를 제어하고 capture.output(print(mytable))을 사용하면 출력이 지나치게 넓지 않은 너비 요구 사항을 충족시킵니다.

관련 문제