R не распознает фактор - PullRequest
       95

R не распознает фактор

0 голосов
/ 19 февраля 2019

Я собираюсь сделать тест Крускала-Уоллиса в R (проверяя, есть ли разница между статусом доминирования у рыб (пять групп, измеренных от 1-5) и атаками рыб), но, кажется, у меня есть сомпроблемы с фактором.Я импортирую набор данных из Excel.R не распознает статус доминирования как фактор (возвращает FALSE при запросе is.factor (dominance_status). Когда я импортирую набор данных в виде текстового файла, R не распознает первую строку как имена столбцов, а вместо этого записывает V1 и V2 какназвание столбцов.

Буду очень признателен, если кто-нибудь сможет мне помочь с этой проблемой!

Attack_data
Indvid Dominance_status Attacks
<chr> <dbl> <dbl>
1 a1 3 0
2 a2 3 0
3 a3 4 0

# ... with 22 more rows

is.factor(Dominance_status) [1] FALSE

1 Ответ

0 голосов
/ 20 февраля 2019

Поскольку Dominance_status кодируется численно, большинство функций чтения * будут догадываться, что это числовой класс, а не фактор.

После считывания данных вы можете просто изменить класс на фактор с использованием as.factor(), чтобы заставить R обрабатывать Dominance_status как фактор.

df <- data.frame(stringsAsFactors=FALSE,
             Indvid = c("a1", "a2", "a3"),
   Dominance_status = c(3, 3, 4),
            Attacks = c(0, 0, 0)
)

is.factor(df$Dominance_status)
#> [1] FALSE

df$Dominance_status <- as.factor(df$Dominance_status)

is.factor(df$Dominance_status)
#> [1] TRUE

Создано в 2019-02-20 пакетом представлений (v0.2.0).

В качестве альтернативы, вы можете использовать colClasses, чтобы указать, что Dominance_status является фактором, когда вы читаете данные в первую очередь.Вот как вы могли бы сделать это, используя read.csv:

read.csv(filename, colClasses = c(Dominance_status = "factor"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...