2016-09-04 1 views
1

나는 탭으로 구분 된 파일에 쓸 데이터 세트 ped을 가지고 있습니다. . 그러나 헤더 파일을 읽어야 프로그램의 요구에 어떻게 거기에 해시 기호를 배치해야합니까 인해 (해시 (#) 기호로 시작해야write.table을 사용하여 첫 줄에 특수 문자를 쓰는 방법

ped <- ped [,c('FAM_ID','IND_ID','FAT_ID','MOT_ID','SEX','DISEASE','RR','AGE')] 
setwd(proj.dir) 
write.table(ped, "DB/asymmetry.ped", sep="\t", row.names = FALSE, quote = FALSE) 
+0

완벽하게 작동했습니다. 나는 그 경고와 함께 살 수있다. 대단히 감사합니다! –

답변

2

당신은 시도 할 수 있습니다 :?

이 기본 동작으로
cat("#", file = "DB/asymmetry.ped") 
write.table(ped, "DB/asymmetry.ped", sep="\t", row.names = FALSE, quote = FALSE, 
      append = TRUE) 

주, 당신은 write.table에서 경고 메시지가 나타납니다.

## somewhere inside `write.table`: 
if (!is.null(col.names)) { 
     if (append) 
      warning("appending column names to file") 

하지만 더 피해가 발생하지 않습니다


또 다른 가능한 방법은, 다음, 첫 번째 열 이름에 "#"를 추가 (quote = FALSE와) 평소와 같이 write.table을 사용하는 것입니다

ped <- ped [,c('FAM_ID','IND_ID','FAT_ID','MOT_ID','SEX','DISEASE','RR','AGE')] 
NAMES <- names(ped) 
NAMES[1] <- paste0("#", NAMES[1]) 
setwd(proj.dir) 
write.table(ped, "DB/asymmetry.ped", sep="\t", row.names = FALSE, quote = FALSE, 
      col.names = NAMES) 

나는이 방법을 추천 할 것입니다.

ped <- cbind.data.frame("#" = "#", ped[,c('FAM_ID','IND_ID','FAT_ID','MOT_ID','SEX','DISEASE','RR','AGE')]) 
setwd(proj.dir) 
write.table(ped, "DB/asymmetry.ped", sep="\t", row.names = FALSE, quote = FALSE) 

: 당신은 모든 라인/행의 시작에서 #을 추가 할 경우

x <- trees[1:3, ] ## use built-in dataset `trees` 
NAMES <- names(x) 
NAMES[1] <- paste0("#", NAMES[1]) 
## write to screen (stdout) for inspection 
write.table(x, row.names = FALSE, col.names = NAMES, quote = FALSE) 

#Girth Height Volume 
8.3 70 10.3 
8.6 65 10.3 
8.8 63 10.2 

, 당신은 첫 번째 열로 "#" 열을 추가 할 수 있습니다 :의 테스트를 보자 다시 한 번 테스트 해 보겠습니다.

x <- cbind.data.frame("#" = "#", trees[1:3, ]) 
## write to screen (stdout) for inspection 
write.table(x, row.names = FALSE, quote = FALSE) 

# Girth Height Volume 
# 8.3 70 10.3 
# 8.6 65 10.3 
# 8.8 63 10.2 
관련 문제