Я пишу df в выходной файл, но он не завершен, и я действительно не понимаю, почему
rgb_file <- file("/path/to/output/rgb_file.txt", 'w')
# df=df[-c(360576),] # Remove this line doesn't solve the problem
writeLines(header_rgb, rgb_file.txt, sep = '') # print str line as first line in my output
write.table(df, rgb_file, quote = FALSE, row.names = FALSE,col.names = FALSE,sep = "\t")
length(df[,1])
[1] 360637
Сейчас в терминале почти 100 строк не здесь, а последняя строка не завершена
wc -l rgb_file.txt
360575 rgb_file.txt
sed '360576q;d' rgb_file.txt
chr15 93842904 93842954 region_9994 1 + 93842904 93842 # incomplete row
Так что длина моего фрейма данных и длина файла разные, и я не понимаю, почему. Я напечатал строки в конце моего выходного файла; ничто не выглядит иначе:
chr start_subregion end_subregion region_id subregion_id strand start_sub end_sub rgb
360574 chr15 93842854 93842904 region_9994 1 + 93842854 93842904 0,12,0
360575 chr15 93842904 93842954 region_9994 1 + 93842904 93842954 0,12,0
360576 chr15 93842954 93843004 region_9994 1 + 93842954 93843004 0,12,0
360577 chr15 93843004 93843054 region_9994 1 + 93843004 93843054 30,0,0
360578 chr15 93843054 93843104 region_9994 1 + 93843054 93843104 30,0,0
Я пытался дольше, df, и он работает ... Я пытался удалить эту строку, но затем это следующая строка, которая не завершена
Но что это больше всего странно, что если я напишу 2 раза в выводе, w c -l вернет длину моего фрейма данных * 2, и тогда строка будет завершена, посмотрите:
rgb_file <- file("/path/to/output/rgb_file.txt", 'w')
# df=df[-c(360576),] # Remove this line doesn't solve the problem
writeLines(header_rgb, rgb_file.txt, sep = '') # print str line as first line in my output
write.table(df, rgb_file, quote = FALSE, row.names = FALSE,col.names = FALSE,sep = "\t")
write.table(df, rgb_file, quote = FALSE, row.names = FALSE,col.names = FALSE,sep = "\t")
Terminal:
wc -l rgb_file.txt
721214 rgb_file.txt
sed '360576q;d' rgb_file.txt
chr15 93842904 93842954 region_9994 1 + 93842904 93842954 0,12,0 # Why now the line is complete and wc -l = 2*df
Может быть, что-то не так в том, как я пишу свой вывод? Потому что я сначала пишу строку str, а затем фрейм данных, но все должно быть в порядке