как фактор с уровнями 0, 1 вместо 1, 2 - PullRequest
1 голос
/ 20 января 2020

Моя переменная (poor) - это фактор с двумя уровнями: плохой и не плохой.

Мне нужно, чтобы оно было 1, если оно плохое, и 0, если оно не плохое, поэтому я преобразовал его в цифру c (с as.numeric, а затем снова изменил на коэффициент с as.factor , но теперь уровни 1 и 2 вместо 1 и 0.

Как мне изменить это?

Ответы [ 2 ]

4 голосов
/ 20 января 2020

Вы хотите проверить, где poor равно "Poor", а где нет. Итак,

poor <- factor(c("Poor", "Non-poor", "Poor", "Non-poor"))

poor == "Poor"

Это дает вам TRUE / FALSE на этот вопрос. Если вы превратите это в вектор чисел c, например,

as.numeric(poor == "Poor")

TRUE с преобразуются в 1 с, а FALSE с преобразуются в 0.

1 голос
/ 20 января 2020

Вы можете индексировать данные в зависимости от уровня фактора. Используя данные @ Georgery

poor <- factor(c("Poor", "Non-poor", "Poor", "Non-poor"))
c(0, 1)[poor]
#[1] 1 0 1 0

Или используйте labels

factor(c("Poor", "Non-poor", "Poor", "Non-poor"), labels = c(0, 1))
#[1] 1 0 1 0
#Levels: 0 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...