Числовые значения c в зависимости от применяемого семейства, R - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть таблица с некоторыми цифрами c и символьными столбцами, некоторые являются факторами и другими целыми числами.

>additional.metadata
      sample_id patient_id condition SOM test
1387          1          1       CTL  22    1
7588          1          1       CTL  35    2
7429          1          1       CTL  23    3
7600          1          1       CTL  35    4

Я пытаюсь преобразовать всю таблицу в матрицу и, в зависимости от Используется опция apply (т. Е. apply против sapply), некоторые значения из $ SOM изменяются. Вот пример:

> apply(additional.metadata, 2, function(x) as.numeric(as.factor(x)))
     sample_id patient_id condition SOM test
[1,]         1          1         1   2    1
[2,]         1          1         1   4    2
[3,]         1          1         1   3    3
[4,]         1          1         1   4    4
[5,]         1          1         1   1    5
[6,]         1          1         1   3    6
> sapply(additional.metadata, function(x) as.numeric(as.factor(x)))
     sample_id patient_id condition SOM test
[1,]         1          1         1  22    1
[2,]         1          1         1  35    2
[3,]         1          1         1  23    3
[4,]         1          1         1  35    4
[5,]         1          1         1  11    5
[6,]         1          1         1  23    6

Кто-то знает, что мне не хватает / недоразумение, пожалуйста? Заранее спасибо.

1 Ответ

0 голосов
/ 04 февраля 2020

Скорее всего, изменения происходят из-за as.numeric(as.factor(x)).

Чтобы убедиться, что ваше значение остается на должном уровне, вам необходимо конвертировать в character или вообще пропустить этап коэффициента.

Используйте взамен as.numeric(as.character(as.factor(x))) или as.numeric(as.character(x)).

Объяснение того, почему вам нужно это сделать, можно найти в самом верхнем ответе на этот вопрос:

Изменение значений при преобразовании типа столбца в число c

...