не может изменить имена строк таблицы - PullRequest
1 голос
/ 03 июня 2019

Я создал эту таблицу:

> head(table)
                  tissue1 tissue2 tissue3 tissue4 tissue5
Simple_repeat_80   58     77         48     69     115                                   131
tRNA_1              0     14         12      1      19                                     14
Simple_repeat_86    2     10          2      2      14                                       9
Simple_repeat_87    1     33         12      3      15                                      21
Simple_repeat_103   0      0          2      0       0                                       4
SINE/tRNA-Deu_20    0      0          1      0       0                                      10

и я поставил команду row <- strsplit(rownames(table), "_[0-9]+") для устранения подчеркивания и количества элементов после имени. Я хотел бы создать новую таблицу, как этот пример:

> head(table)
                  tissue1 tissue2 tissue3 tissue4 tissue5
Simple_repeat   58     77         48     69     115                                   131
tRNA             0     14         12      1      19                                     14
Simple_repeat    2     10          2      2      14                                       9
Simple_repeat    1     33         12      3      15                                      21
Simple_repeat   0      0          2      0       0                                       4
SINE/tRNA-Deu    0      0          1      0       0                                      10

Я пробовал эту команду:

> row.names(table) = row
Error in `.rowNamesDF<-`(x, value = value) : 
  'row.names' duplicate non sono permesse
Inoltre: Warning message:
non-unique values when setting 'row.names': ‘DNA?’, ‘DNA/hAT-Ac’, ‘DNA/hAT-Charlie’, ‘DNA/hAT-Tag1’, ‘DNA/hAT-Tip100’, ‘DNA/MULE-MuDR’, ‘DNA/PIF-Harbinger’, ‘DNA/PiggyBac’, ‘DNA/TcMar-Mariner’, ‘DNA/TcMar-Tc1’, ‘DNA/TcMar-Tc2’, ‘DNA/TcMar-Tigger’, ‘LINE/CR1’, ‘LINE/Dong-R4’, ‘LINE/I-Jockey’, ‘LINE/L1’, ‘LINE/L2’, ‘LINE/Penelope’, ‘LINE/RTE-BovB’, ‘Low_complexity’, ‘LTR/ERV1’, ‘LTR/ERVK’, ‘LTR/ERVL’, ‘LTR/Gypsy’, ‘LTR/Gypsy?’, ‘RC/Helitron’, ‘rRNA’, ‘Satellite/acro’, ‘Simple_repeat’, ‘SINE/5S-Deu-L2’, ‘SINE/MIR’, ‘SINE/tRNA’, ‘SINE/tRNA-Deu’, ‘SINE/tRNA-RTE’, ‘snRNA’, ‘srpRNA’, ‘tRNA’ 

Как я могу решить это?

1 Ответ

2 голосов
/ 03 июня 2019

Ваша проблема в том, что вы пытаетесь присвоить дубликаты row.names, что недопустимо - несколько строк будут названы Simple_repeat. Одним из решений является сделать имена уникальными, например, с помощью:

row.names(table) <- make.unique(row)

Другое решение состоит в том, чтобы вообще не использовать имена строк, а создать отдельный столбец, а затем использовать его для дальнейшей обработки вместо имен строк, например,

table$rowLabel <- row
...