Как мне структурировать данные, чтобы они соответствовали структуре набора данных диабета в R? - PullRequest
0 голосов
/ 23 марта 2020

Я хотел бы структурировать свои собственные данные, похожие на набор данных диабета в пакете monomvn R, чтобы опробовать несколько различных примеров регрессионной модели (в частности, регрессию LASSO).

В данных о диабете перечислены три переменные (x, x2 и y), но оба x и x2 содержат несколько подуровней переменных (таких как age, bmi, et c.). Эти переменные x и x2 вызываются в различных примерах регрессионной модели, которые в конечном итоге ссылаются на эти подуровни переменных.

К сожалению, всякий раз, когда я пытаюсь структурировать свои данные так, чтобы они соответствовали набору данных о диабете, он либо приводится к списку в переменной (что мешает примерам работать должным образом), либо не получает классифицируется в одну переменную x (вместо этого читая каждую переменную в отдельности как x.age, x.bmi, et c.). Моя цель - использовать df $ x для ссылки на несколько переменных; другими словами, df $ x должен ссылаться на df $ x.var1, df $ x.var2, df $ x.var3. У меня есть до 240 переменных, которые я хотел бы закодировать в одной переменной x.

Самое близкое, что я мог получить:

df$x.var1 <- data.frame(as.numeric(master_data$var1))
df$x.var2 <- data.frame(as.numeric(master_data$var2))
df$x.var3 <- data.frame(as.numeric(master_data$var3))

Нет ошибок при создании фрейма данных; однако мне все равно нужно ссылаться на полное имя переменной (x.var1) вместо «x», которое ссылается на все под-переменные, чтобы любой из примеров регрессии работал; при таком подходе я не могу перечислить ~ 240 имен переменных как x переменных в моделях регрессии Лассо.

В Matlab я бы структурировал это как структуру под-переменных (var1, var2, var3, et c.) В структуре с именем "x"; тем не менее, я делаю это в R и в настоящее время не могу понять, как я могу выполнить задачу такого типа.

Набор данных о диабете, на который я ссылаюсь, находится здесь:

library(monomvn)
data(diabetes)

Если это полезно, набор данных о диабете классифицирует переменные «x» и «x2» как «AsIs» (хотя все под-переменные кажутся цифрами c), а «y» - цифрами c.

К вашему сведению, у меня есть некоторые значения NA в моем собственном наборе данных, но я не получил никаких ошибок, которые заставляют меня думать, что это как-то связано с этой проблемой; однако в наборе данных о диабете нет значений NA, поэтому я не исключаю возможности.

Если бы кто-нибудь мог дать какое-то руководство о том, как перевести числовые данные c в формат, соответствующий набору данных о диабете, это было бы невероятно полезно. Заранее спасибо.

1 Ответ

0 голосов
/ 23 марта 2020

Справочная страница описывает данные как data.frame, содержащий следующие столбцы: xa матрица с 10 столбцами, ya цифра c вектор и x2 матрица с 64 столбцами.

Проблема в том, что вы пытаетесь назначить данные в виде столбцов data.frame. Вам необходимо сначала собрать две матрицы, а затем назначить их в data.frame.

Примерно так:

mydata.x <- matrix(runif(500,-2,2),ncol=10)
mydata.y <- runif(50,50,500)
mydata.x2 <- matrix(runif(3200,-2,2),ncol=64)
mydiabetes <- data.frame(mydata.x,mydata.y,mydata.x2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...