Вы можете попробовать:.?
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")
, но это не вызывает никакого вреда
Другой возможный способ, чтобы добавить в "#"
к вашему имени столбца, а затем использовать write.table
как обычно (с quote = FALSE
):
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)
Я рекомендовал бы этот путь. Давайте тест:
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
В случае, если вы хотите добавить #
в начале каждой строки/строки, вы можете добавить в "#"
столбец в качестве первого столбца:
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 <- 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
Отлично, что сработало. Я могу жить с этим предупреждением. Спасибо Большое! –