Присваивая имена столбцов df, помешать автоматическому преобразованию символов в числа? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть df названий генов и df значений для этих генов. Я хочу объединить два (обозначить фрейм данных именами генов).

У меня есть 1x23000 df, "genes":

AB1G, A1CF, ..., ZYY1

и8000x23000 df, "expression":

1 0 ... 3

0 0 ... 1

2 2 ... 0

Я хочу объединить их в один df:

A1BG A1CF ... ZYY1

1 0 ... 3

0 0 ... 1

2 2 ... 0

Когда я использую rbind, имена геновподдерживается, но все ненулевые значения в «выражении» превращаются в N / A.

Когда я использую colnames (expression) = genes или colnames (expression) = paste (genes), номера выражений сохраняются, ноимена генов преобразуются в кажущиеся бессмысленными числа.

При дальнейшем исследовании я увидел, что структура "генов" по какой-то причине является "фактором" - когда я конвертирую с помощью as.character, все гены переназначаются так, как кажетсякак случайное число (AB1G сейчас 1143, A1CF сейчас 967 и т. д.).

Я думаю, что может быть проблема с несовместимыми форматами гена и экспрессии dфс. Как добавить имена столбцов символов в числовой df?

1 Ответ

0 голосов
/ 23 октября 2019

Проблема появления числового значения вместо строки заключается в том, что столбцы были factor с, и когда они были приведены к целочисленным значениям режима хранения. Вместо этого мы можем преобразовать в character класс после unlist ing или преобразовать в matrix, что автоматически преобразует класс в character, а затем удалить атрибуты dim с помощью c (для преобразования в vector)

 colnames(expression) <- as.character(unlist(genes))

Или

colnames(expression) <- c(as.matrix(genes)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...