У меня есть многовариантный фрейм данных и я хочу преобразовать категориальные данные внутри в фиктивные переменные, я использовал model.matrix, но это не совсем работает. Пожалуйста, обратитесь к примеру ниже:
age = c(1:15) #numeric
sex = c(rep(0,7),rep(1,8)); sex = as.factor(sex) #factor
bloodtype = c(rep('A',2),rep('B',8),rep('O',1),rep('AB',4));bloodtype = as.factor(bloodtype) #factor
bodyweight = c(11:25) #numeric
wholedata = data.frame(cbind(age,sex,bloodtype,bodyweight))
model.matrix(~.,data=wholedata)[,-1]
Причина, по которой я не использовал model.matrix(~age+sex+bloodtype+bodyweight)[,-1]
, заключается в том, что это всего лишь игрушечный пример. В реальных данных я мог бы иметь еще десятки или сотни столбцов. Я не думаю, что вводить здесь все имена переменных — хорошая идея.
Спасибо
model.matrix(~ -1 + . , data=wholedata, contrasts.arg = lapply(wholedata[sapply(wholedata, is.factor)], contrasts, contrasts=FALSE))
- person user20650   schedule 20.08.2014