Использование метки в качестве значения при отрицательных значениях
вместо этого я пытаюсь использовать метки из набора данных в качестве значений. Набор данных был импортирован из файла .sav с использованием Haven. Я пробовал (и преуспел с разными данными) следующим образом:
df %>%
mutate(state = get_labels(state)[state])
Теперь у меня две проблемы:
- Это не работает для приведенного ниже примера, по-видимому (если я правильно понял), потому что некоторые значения отрицательны? Есть ли способ обойти это? я получаю ошибку
Error in `mutate()`:
! Problem while computing `vote = get_labels(vote)[vote]`.
Caused by error in `get_labels(vote)[vote]`:
! only 0's may be mixed with negative subscripts
- Некоторые столбцы в кадре данных не помечены. Есть ли способ выполнить это только в том случае, если он у них есть, а в противном случае оставить их в покое? Я попробовал приведенный выше код в столбце без метки, и он был удален...
Заранее большое спасибо, и я надеюсь, что мой пример ниже воспроизводим!
Example data:
structure(c(215, 1, -97, 4, -97, 5, -97, -98, 6, -97, -97, 5,
-99, -97, 7, -98, 1, -97, 1, 1), labels = c(`keine Angabe` = -99,
`weiss nicht` = -98, `trifft nicht zu` = -97, `nicht in Auswahlgesamtheit` = -94,
`ungueltig waehlen` = -83, `CDU/CSU` = 1, SPD = 4, FDP = 5, GRUENE = 6,
`DIE LINKE` = 7, BP = 126, `DIE GRAUEN` = 149, `Die PARTEI` = 151,
`DIE VIOLETTEN` = 152, DVU = 168, FAMILIE = 171, `FREIE WAEHLER` = 180,
NPD = 206, oedp = 209, PBC = 214, PIRATEN = 215, RENTNER = 224,
REP = 225, RRP = 226, Tierschutzpartei = 237, Volksabstimmung = 249,
AfD = 322, BGE = 338, DiB = 349, `andere Partei` = 801, `keine Partei; keiner Partei` = 808,
`Interview abgebrochen` = -93, `Fehler in Daten` = -92, Mehrfachnennungen = -73,
DKP = 156, MLPD = 202, SSW = 234, NM = 326, LKR = 331, `V-Partei³` = 344,
Tierschutzallianz = 345, `Die Humanisten` = 350, `Buendnis C` = 351,
`Die Grauen` = 361, Volt = 364, dieBasis = 372, `Team Todenhoefer` = 373,
BUENDNIS21 = 374, BUERGERBEWEGUNG = 378, Sonstige = 800), label = "Wahlabsicht: BTW, Zweitstimme (Version B)", class = c("haven_labelled",
"vctrs_vctr", "double"))