Уровни не присутствуют при обработке 1,0, NA - PullRequest
1 голос
/ 21 июня 2010

Вот я с другим вопросом новичка.

Я импортирую файл CSV, который выглядит следующим образом:

"username","interest","has_card"
"test01","not_interesting",1
"test02","maybe_interesting",0
"test03","not_interesting",0
"test04","maybe",1

mydata <- read.table(file("test.csv", encoding = "UTF-8"), header=TRUE, sep=",")

Затем (возможно, это звучит как глупый вопрос новичка), почемуЯ могу получить уровни для основанного на строках материала, например:

> levels(mydata$interest)
[1] "maybe"             "maybe_interesting" "not_interesting"

Но не для двоичного (целочисленного) материала.

> levels(mydata$has_card)
NULL

То, что я делаю, это полоса частотТаблица, мне в основном нужно переименовать метки 0,1 на что-то вроде «Нет», «Да» в легенде сюжета.Но я не могу сделать:

levels(mydata$has_card)[1] <- "Yes"
levels(mydata$has_card)[0] <- "No"

Как будто я сделал бы это с «возможно», «возможно_интересным», «не_интересным»

Ответы [ 2 ]

1 голос
/ 21 июня 2010

Поведение по умолчанию read.table заключается в преобразовании символьных переменных (которые не преобразуются в логические, числовые или сложные) в факторы, ср.as.is или stringsAsFactors на странице справки:

R> class(mydata$has_card)
[1] "integer"
R> class(mydata$interest)
[1] "factor"
R> factor(mydata$has_card, labels=c("No", "Yes"))
[1] Yes No  No  Yes
Levels: No Yes
0 голосов
/ 21 июня 2010

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

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