Как создать фиктивные переменные для больших наборов данных? - PullRequest
0 голосов
/ 21 апреля 2020

Мне нравится использовать фиктивные переменные, поскольку это дает мне лучшее чувство контроля, чем опции в функциях lm и glm. Как правило, я использую dummy_cols из пакета fastdummies, но эта последняя партия данных показала, что по какой-то причине нарушена функция (такие функции, как str () и glimpse (), не работают должным образом, а также средство просмотра данных в R-studio) за пределами первой таблицы переменных).

Это функция, которую я обычно использую:

df<-dummy_cols(df, c("ADMISSIONROUND_ID","urvalsgrupp","NYA_REGION_GROV","gymnasie_mergrov",
"program"))

Можно ли использовать эту функцию для моих текущих данных или есть более стабильная альтернатива?

Это Я проверил отрывок из моих данных, и у функции, похоже, есть проблема с отрывком.

structure(list(ADMISSIONROUND_ID = structure(c(14L, 15L, 13L, 
7L, 9L, 12L, 13L, 12L, 14L, 11L, 15L, 15L, 7L, 10L, 8L, 8L, 15L, 
4L, 8L, 12L, 28L, 8L, 10L, 14L, 9L, 11L, 8L, 14L, 6L, 15L, 17L, 
8L, 15L, 6L, 27L, 22L, 4L, 15L, NA, 8L, 15L, 8L, 10L, 15L, 30L, 
14L, 13L, 17L, 17L, 9L), .Label = c("HT2005", "HT2006", "HT2007", 
"HT2008", "HT2009", "HT2010", "HT2011", "HT2012", "HT2013", "HT2014", 
"HT2015", "HT2016", "HT2017", "HT2018", "HT2019", "HT2020", "VIFYHT19", 
"VT2006", "VT2007", "VT2008", "VT2009", "VT2010", "VT2011", "VT2012", 
"VT2013", "VT2014", "VT2015", "VT2016", "VT2017", "VT2018", "VT2019", 
"VT2020"), class = c("ordered", "factor")), COURSEOFFERING_ID = c("90522", 
"97211", "91668", "93772", "98144", "95534", "97211", "93105", 
"96817", "90394", "97211", "96817", "98560", "93219", "93520", 
"97759", "95978", "90300", "92155", "90570", "93120", "92155", 
"93355", "99401", "98144", "99250", "94945", "96817", "99243", 
"92240", "99752", "93844", "95194", "95540", "94488", "90822", 
"90070", "97438", "99517", "99926", "91111", "93287", "92834", 
"97868", "99517", "96789", "91363", "92873", "98062", "94046"
), program = c("IPPE", "Socialpedagogiska_programmet", "Maklarekonom", 
"Sjuksköterskeprogrammet", "Programmet_för_Socialpsykiatrisk_vård", 
"Digitala_Medier", "Socialpedagogiska_programmet", "Ämneslärare_högstadium_Svenska_Samhällskunskap", 
"c(\"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \n\"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\", \"Personalekonomi\")", 
"Magisterprogram_i_informatik", "Socialpedagogiska_programmet", 
"c(15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0, 15, 15, 30, 30, 15, 15, 0)", 
"Nätverksteknik_med_IT_säkerhet", "Nätverksteknik_med_IT_säkerhet", 
"Sjuksköterskeprogrammet", "Magister_i_robotteknik", "Webmaster_distans", 
"Sjuksköterskeprogrammet", "Grundlärarprogrammet_föreskoleklass_och_lågstadium", 
"Grundlärarprogrammet_mellanstadium", "Sjuksköterskeprogrammet", 
"Grundlärarprogrammet_föreskoleklass_och_lågstadium", "Specialistsjuksköterska_DSK_Folkhälsa", 
"IPPE", "Programmet_för_Socialpsykiatrisk_vård", "Tekniskt_basår", 
"Personalekonomi", "c(14780, 14780, 14780, 14780, 14780, 14780, 14780, 15151, 15151, 15151, 15151, 15151, 15151, 15151, 15515, 15515, 15515, 15515, 15515, 15515, 15515, 15879, 15879, 15879, 15879, 15879, 15879, 15879, 16250, 16250, 16250, 16250, 16250, 16250, 16250, 16614, 16614, 16614, 16614, 16614, 16614, 16614, 16978, 16978, 16978, 16978, 16978, 16978, 16978)", 
"Personalekonomi", "Personalvetarprogrammet_Arbetsliv_och_hälsa", 
"Specialistsjuksköterska_DSK_Folkhälsa", "Maklarekonom", "Ämneslärare_gymnasiet_Svenska", 
"Socialpedagogiska_programmet_distans", "Sjuksköterskeprogrammet", 
"Sjuksköterskeprogrammet", "IPPE", "Förskollärarprogrammet", 
"bullshit", "Grundlärarprogrammet_fritids_idrott_och_hälsa", 
"Systemvetenskap", "Digitala_Medier", "Specialistsjuksköterska_psykiatri_deltid", 
"Magister_FEK", "Sjuksköterskeprogrammet", "Specialistsjuksköterska_psykiatri_deltid", 
"Grundlärarprogrammet_föreskoleklass_och_lågstadium", "Specialistsjuksköterska_psykiatri", 
"Specialistsjuksköterska_Palliativ_vård", "Sjuksköterskeprogrammet"
), ålder = c(25, 31, 27, 26, 22, 19, 39, 25, 38, 45, 44, 41, 
21, 24, 35, 24, 31, 21, 22, 22, 23, 35, 25, 20, 19, 25, 25, 38, 
32, 21, 49, 23, 21, 23, 25, 21, 19, 30, 21, 31, 28, 21, 39, 24, 
39, 41, 31, 32, 28, 20), KON_SV = c(1, 0, 0, 0, 0, 1, 1, 0, 0, 
1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), 
    CREDITS = c(0, 37.5, 0, 0, 7.5, 0, 160, 0, 0, 0, 32.5, 0, 
    112.5, 90, 0, 0, 0, 0, 240, 26.5, 165, 240, 0, 37.5, 0, 52.5, 
    120, 64, 106, 45, 0, 120, 0, 172.5, 180, 0, 0, 37.5, 73.5, 
    180, 0, 0, 60, 0, 130.5, 0, 0, 0, 0, 0), PERC_CREDIT = c(0, 
    NA, 0, 0, NA, 0, NA, 0, 0, 0, NA, 0, 93.75, 75, 0, 0, 0, 
    0, 100, 12.3255813953488, NA, 100, 0, 41.6666666666667, 0, 
    NA, 100, NA, 88.3333333333333, 100, 0, 66.6666666666667, 
    0, NA, NA, 0, 0, 100, NA, 100, 0, 0, 100, 0, NA, 0, 0, 0, 
    0, 0), totstatus_bin = c(1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 
    1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 
    1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 
    1), Examen = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 
    1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0), totstatus = c("tidigt avbrott?", 
    "pågående studier", "tidigt avbrott?", "återbud innan start", 
    "uppehall", "registrerad men återbud", "pågående studier", 
    "tidigt avbrott?", "bortfall", "återbud innan start", "pågående studier", 
    "avbrott", "bortfall", "bortfall", "återbud innan start", 
    "återbud innan start", "uteblivit", "återbud innan start", 
    "Avklarad Utbildning", "bortfall", "Avklarad Utbildning", 
    "Avklarad Utbildning", "bortfall", "pågående studier", "tidigt avbrott?", 
    "bortfall", "Avklarad Utbildning", "bortfall", "Avklarad Utbildning", 
    "pågående studier", "återbud innan start", "Avklarad Utbildning", 
    "avbrott", "Avklarad Utbildning", "Avklarad Utbildning", 
    "tidigt avbrott?", "återbud innan start", "pågående studier", 
    "återbud innan start", "Avklarad Utbildning", "avbrott", 
    "återbud innan start", "Avklarad Utbildning", "återbud innan start", 
    "pågående studier", "tidigt avbrott?", "uteblivit", "återbud innan start", 
    "återbud innan start", "tidigt avbrott?"), totstatus_tri = c(2, 
    1, 2, 2, 3, 3, 1, 2, 3, 2, 1, 3, 3, 3, 2, 2, 2, 2, 1, 3, 
    1, 1, 3, 1, 2, 3, 1, 3, 1, 1, 2, 1, 3, 1, 1, 2, 2, 1, 2, 
    1, 3, 2, 1, 2, 1, 2, 2, 2, 2, 2), NYA_REGION_GROV = c("oklart", 
    "VÄSTERGÖTLAND", "ÖVRIGA LANDET", "STORGÖTEBORG", "STORGÖTEBORG", 
    "ÖVRIGA LANDET", "FYRSTADSOMRÅDET", "oklart", "oklart", "FYRSTADSOMRÅDET", 
    "FYRSTADSOMRÅDET", "ÖVRIGA LANDET", "FYRSTADSOMRÅDET", "ÖVRIGA LANDET", 
    "STORGÖTEBORG", "ÖVRIGA LANDET", "ÖVRIGA LANDET", "oklart", 
    "VÄSTERGÖTLAND", "FYRSTADSOMRÅDET", "oklart", "FYRSTADSOMRÅDET", 
    "oklart", "STORGÖTEBORG", "STORGÖTEBORG", "FYRSTADSOMRÅDET", 
    "FYRSTADSOMRÅDET", "oklart", "oklart", "BOHUSLÄN OCH DALSLAND", 
    "FYRSTADSOMRÅDET", "FYRSTADSOMRÅDET", "FYRSTADSOMRÅDET", 
    "ÖVRIGA LANDET", "FYRSTADSOMRÅDET", "oklart", "ÖVRIGA LANDET", 
    "FYRSTADSOMRÅDET", "oklart", "oklart", "oklart", "ÖVRIGA LANDET", 
    "FYRSTADSOMRÅDET", "oklart", "FYRSTADSOMRÅDET", "STORGÖTEBORG", 
    "FYRSTADSOMRÅDET", "FYRSTADSOMRÅDET", "VÄSTERGÖTLAND", "oklart"
    ), gymnasie_mergrov = c("Oklart", "yrkesinriktade program", 
    "yrkesinriktade program", "friskola/specialprogr/komvux", 
    "estetiska/medieprogrammet", "naturvetenskap och teknik", 
    "Oklart", "Oklart", "friskola/specialprogr/komvux", "samhällsvetenskapliga programmet och ekonomi", 
    "samhällsvetenskapliga programmet och ekonomi", "estetiska/medieprogrammet", 
    "naturvetenskap och teknik", "friskola/specialprogr/komvux", 
    "samhällsvetenskapliga programmet och ekonomi", "naturvetenskap och teknik", 
    "estetiska/medieprogrammet", "naturvetenskap och teknik", 
    "naturvetenskap och teknik", "yrkesinriktade program", "Oklart", 
    "yrkesinriktade program", "Oklart", "Oklart", "samhällsvetenskapliga programmet och ekonomi", 
    "yrkesinriktade program", "friskola/specialprogr/komvux", 
    "samhällsvetenskapliga programmet och ekonomi", "Oklart", 
    "samhällsvetenskapliga programmet och ekonomi", "samhällsvetenskapliga programmet och ekonomi", 
    "naturvetenskap och teknik", "yrkesinriktade program", "samhällsvetenskapliga programmet och ekonomi", 
    "yrkesinriktade program", "Oklart", "samhällsvetenskapliga programmet och ekonomi", 
    "yrkesinriktade program", "Oklart", "Oklart", "Oklart", "estetiska/medieprogrammet", 
    "samhällsvetenskapliga programmet och ekonomi", "Oklart", 
    "yrkesinriktade program", "samhällsvetenskapliga programmet och ekonomi", 
    "yrkesinriktade program", "friskola/specialprogr/komvux", 
    "friskola/specialprogr/komvux", "samhällsvetenskapliga programmet och ekonomi"
    ), SVENSKA = c(NA, 1, 3, 5, 1, 1, NA, NA, 5, NA, NA, 3, 3, 
    3, NA, 5, 1, 3, 3, 1, NA, 1, NA, 3, 3, 1, 3, 3, NA, 4, NA, 
    3, 1, 3, 1, NA, 3, 3, NA, NA, NA, 3, NA, NA, 3, 3, 3, 5, 
    5, 3), SVENSKA3 = c(NA, 3, NA, 5, NA, 1, NA, NA, NA, NA, 
    NA, 3, NA, NA, NA, NA, NA, NA, 3, 1, NA, NA, NA, NA, 3, NA, 
    NA, NA, NA, 4, NA, NA, 1, 3, NA, NA, 5, NA, NA, NA, NA, 1, 
    NA, NA, NA, NA, NA, 1, NA, 5), MATEMATIK = c(NA, 1, 1, 3, 
    3, 1, 1, NA, 3, NA, NA, 1, 3, 1, NA, 3, 1, 3, 3, 3, NA, 1, 
    NA, NA, 1, 1, 1, 5, NA, 2, NA, 3, 1, 1, 3, NA, 1, 1, NA, 
    NA, NA, 5, NA, NA, 1, 3, 3, 1, 5, 3), MATEMATIK3 = c(NA, 
    NA, 1, NA, NA, 1, NA, NA, 1, NA, NA, NA, 1, 2, NA, 3, NA, 
    3, 1, NA, NA, NA, NA, NA, NA, 1, 1, 1, NA, 1, NA, 1, NA, 
    NA, NA, NA, 1, NA, NA, NA, NA, 3, NA, NA, NA, NA, NA, NA, 
    3, NA), ENGELSKA = c(NA, 1, 1, 5, 3, 3, 1, NA, 3, NA, NA, 
    3, 3, 5, NA, 5, 1, 3, 3, 3, NA, 1, NA, 1, 3, 3, 5, 3, NA, 
    4, NA, 3, 2, 5, 1, NA, 3, 1, NA, NA, NA, 3, 3, NA, 1, 1, 
    3, 5, 5, 1), ENGELSKA2 = c(NA, NA, 1, 3, 3, 3, 1, NA, 5, 
    NA, 3, 1, 3, 5, NA, 3, 1, 3, 3, 1, NA, 3, NA, 1, 3, 1, 5, 
    1, NA, 3, NA, 1, 1, 5, 1, NA, 3, 3, NA, NA, NA, 3, NA, NA, 
    NA, 1, 1, 5, 5, 1), SUMMA = c(0, 22.5, 0, 105, 0, 0, 202.5, 
    0, 198, 195, 322.5, 547.5, 45, 5, 247.5, 186.5, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 187.5, 0, 0, 112.5, 60, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 30, 405, 0, 0, 0, 0, 195, 0, 0), urvalsgrupp = c("omregistrerad", 
    "Alternativt Urval", "HP", "betyg", "HP", "HP", "Alternativt Urval", 
    "oklart", "betyg", "Högskolepoäng master", "Alternativt Urval", 
    "Folkhögskola", "betyg", "betyg", "betyg", "Direktantagning", 
    "betyg", "oklart", "betyg", "betyg", "omregistrerad", "HP", 
    "omregistrerad", "Folkhögskola", "betyg", "betyg m. komplettering", 
    "betyg m. komplettering", "betyg m. komplettering", "omregistrerad", 
    "HP", "omregistrerad", "HP", "Sen Anmälan", "HP", "betyg", 
    "omregistrerad", "HP", "betyg m. komplettering", "oklart", 
    "omregistrerad", "omregistrerad", "betyg", "oklart", "omregistrerad", 
    "betyg m. komplettering", "Sen Anmälan", "Sen Anmälan", "omregistrerad", 
    "omregistrerad", "betyg"), antalreg = c(1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L
    )), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-50L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...