Как сделать 2 элемента различной длины в списке фрейма данных в текстовый файл? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь использовать функцию combn для создания другой комбинации, а затем пытаюсь создать много txt-файлов из каждой комбинации. мой файл spt1:

     spt1 <- split(mydf, mydf[c(,6)]    

     BSJI BSJI_04204 Basenji Breed Breed 0  
     BSJI BSJI_04207 Basenji Breed Breed 0  
     BSJI BSJI_04208 Basenji Breed Breed 1  
     BSJI BSJI_04212 Basenji Breed Breed 1
     BSJI BSJI_04229 Basenji Breed Breed 1
     BSJI BSJI_12694 Basenji Breed Breed 2  
     BSJI_2634 BSJI_2634 Basenji Breed Breed 2  
     BSJI_34177 BSJI_34177 Basenji Breed Breed 2  
     BSJI_3454  BSJI_3454  Basenji Breed Breed 2
     BSJI_35551 BSJI_35551 Basenji Breed Breed 2
     BSJI_35552 BSJI_35552 Basenji Breed Breed 2

Однако, когда я проверяю первую комбинацию, в комбинации было 2 элемента. Но я хочу, чтобы эти два элемента разной длины были в моем выходном текстовом файле.

В моем файле 6 столбцов и 7000 строк. Я использую функцию combn для создания множества комбинаций.

combos = as.data.frame(combn(spt1, 2)).  

Итак, я получил 2 объекта и 486 переменных.

my output.txt    

[[1]]
      Column1    Column2    Column3  Column4  Column5 Column6
 1    BSJI       BSJI_04204 Basenji   Breed    Breed     0
 2    BSJI       BSJI_04207 Basenji   Breed    Breed     0

[[2]]    
      Column1    Column2    Column3  Column4  Column5 Column6       
 3    BSJI_2634  BSJI_2634  Basenji   Breed    Breed     2  
 4    BSJI_34177 BSJI_34177 Basenji   Breed    Breed     2  
 5    BSJI_3454  BSJI_3454  Basenji   Breed    Breed     2
 6    BSJI_35551 BSJI_35551 Basenji   Breed    Breed     2
 7    BSJI_35552 BSJI_35552 Basenji   Breed    Breed     2    



I try to make a txt file by  

sink("output.txt")
print(combos[, 1])
sink()

Однако выходной файл все еще включал [[1]] и [[2]]

  the expected output should be like    

      Column1    Column2    Column3  Column4  Column5 Column6
 1    BSJI       BSJI_04204 Basenji   Breed    Breed     0
 2    BSJI       BSJI_04207 Basenji   Breed    Breed     0       
 3    BSJI_2634  BSJI_2634  Basenji   Breed    Breed     2  
 4    BSJI_34177 BSJI_34177 Basenji   Breed    Breed     2  
 5    BSJI_3454  BSJI_3454  Basenji   Breed    Breed     2
 6    BSJI_35551 BSJI_35551 Basenji   Breed    Breed     2
 7    BSJI_35552 BSJI_35552 Basenji   Breed    Breed     2    

Как можно объединить эти два элемента в списке фрейма данных с помощью R и записать в текстовый файл. У вас есть какие-либо предложения, или я должен использовать другую программу для обработки этого, например, Perl?

I also try to use  
write.table(combos[, 1], file = "test.txt", quote=F, row.names=F, col.names=T)    
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,  : 
arguments imply differing number of rows: 77, 91      


a part of my data structure of combos
$ X34 :List of 2
  ..$ :'data.frame':    91 obs. of  6 variables:
  .. ..$ FID    : Factor w/ 5617 levels "0","10","1023320",..: 505 505      505 505 505 506 507 508 509 510 ...
  .. ..$ SID    : Factor w/ 7054 levels "10","100","1003",..: 800 801 802 803 804 805 806 807 808 809 ...
  .. ..$ Breed  : Factor w/ 241 levels "Afghan Hound",..: 24 24 24 24 24 24 24 24 24 24 ...
  .. ..$ GroupI : Factor w/ 3 levels "Breed","Mastiff",..: 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ GroupII: Factor w/ 3 levels "Breed","Mastiff",..: 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ Clade  : Factor w/ 29 levels "0","Alpine","American Terrier",..: 2 2 2 2 2 2 2 2 2 2 ...
  ..$ :'data.frame':    172 obs. of  6 variables:
  .. ..$ FID    : Factor w/ 5617 levels "0","10","1023320",..: 628 628 628 628 783 784 785 786 787 788 ...
  .. ..$ SID    : Factor w/ 7054 levels "10","100","1003",..: 974 975 976 977 1262 1263 1264 1265 1266 1267 ...
  .. ..$ Breed  : Factor w/ 241 levels "Afghan Hound",..: 26 26 26 26 72 72 72 72 72 72 ...
  .. ..$ GroupI : Factor w/ 3 levels "Breed","Mastiff",..: 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ GroupII: Factor w/ 3 levels "Breed","Mastiff",..: 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ Clade  : Factor w/ 29 levels "0","Alpine","American Terrier",..: 8 8 8 8 8 8 8 8 8 8 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...