簡體   English   中英

R 中的 write.table 產生分隔的空格

[英]write.table in R produces spaces in delimited

我正在編寫一個數據框作為 .bed 文件; 數據框看起來不錯,但是當我使用以下方法導出它時:

write.table(x = bed_file, 
              file = 'merged_out.bed', 
              row.names = F, 
              col.names = F, 
              quote = F, 
              sep = '\t')

然后在終端中查看merged.bed 的頭部,一些行是空格分隔的,但大多數是制表符分隔的。 . . 有任何想法嗎?

chr1    3816670 3818113 181 4 
chr1    6452977 6454435 181 1 
chr1    8075042 8075406 181 5 
chr1    8389451 8389713 181 1 
chr1    11190170    11190527    181 1 
chr1    14454661    14454861    181 2 
chr1    16212079    16213143    181 2 

我懷疑那些不是“空格”,而只是實際上是制表符的空格。

驗證:

### the first row
readLines("merged_out.bed", n = 1)
# [1] "chr1\t3816670\t3818113\t181\t4"

### the first seemingly-wrong line
readLines("merged_out.bed", skip = 4, n = 1)
# [1] "chr1\t3816670\t3818113\t181\t4"

很明顯,這兩行中沒有" "字符。

如果您想查看文件中是否有任何文字空格,此表達式將驗證整個文件(假設字段中沒有合法空格):

any(grepl(" ", readLines("merged_out.bed")))
# [1] FALSE

數據准備:

dat <- read.table(text = "
chr1    3816670 3818113 181 4 
chr1    6452977 6454435 181 1 
chr1    8075042 8075406 181 5 
chr1    8389451 8389713 181 1 
chr1    11190170    11190527    181 1 
chr1    14454661    14454861    181 2 
chr1    16212079    16213143    181 2 ")
write.table(dat, "merged_out.bed",
            row.names = FALSE, col.names = FALSE, quote = FALSE, sep = "\t")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM