Преобразуйте числовые значения в столбце в одном наборе данных в соответствующие текстовые значения в другом наборе данных - PullRequest
0 голосов
/ 18 мая 2019

У меня есть два набора данных, один из которых имеет все числовые значения, а другой имеет преобразование:

Это пример живого набора данных, в нем более 2 столбцов, но в данном случае 191 - это США Example of Datset

Это пример набора данных для преобразования.Обратите внимание, что иногда длина столбцов различна.Например, страна имеет 200 элементов, а этническая принадлежность - 6.

Example of Conversion dataset

Как мне написать код, который изменит значение в countryofbirth на US - 191преобразован в США?Исходный набор данных называется my_data, а конверсионный набор данных - Coversion.

I have tried left_joins, 
my_data <- left_join(my_data, select(Conversion, c("StateGrewUpIn", "State")), by = "StateGrewUpIn")

I have tried merge:
    my_data <- merge(x = my_data, y = Conversion[ , c("StateGrewUpIn", "State")], by = "StateGrewUpIn", all.x=TRUE)

Кажется, ничего не работает, оно всегда дублирует строки, превышающие максимум в исходном наборе данных.Другими словами, вместо того, чтобы просто выполнить чистое vlookup, он дублирует строки или включает строки из набора данных преобразования.

Conversion Dataset
> str(Conversion)
'data.frame':   200 obs. of  20 variables:
 $ Religion                : int  1 2 3 4 5 6 7 8 NA NA ...
 $ Rel                     : chr  "Protestant" "Catholic" "Islam" "Judaism" ...
 $ PoliticalView           : int  1 2 3 4 5 6 7 NA NA NA ...
 $ Political_views         : chr  "Very Progressive/Left-wing" "Progressive/Left-wing" "Somewhat Progressive/Left-wing" "Moderate/Centrist" ...
 $ CountryofBirth          : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Country                 : chr  "Afghanistan" "Albania" "Algeria" "Andorra" ...
 $ Citizenship             : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Citizen                 : chr  "Afghanistan" "Albania" "Algeria" "Andorra" ...
 $ StateGrewUpIn           : int  1 2 3 4 5 6 7 8 9 10 ...
 $ State                   : chr  "Alaska (AK)" "American Samoa (AS)" "Arizona (AZ)" "Arkansas (AR)" ...
 $ Ethnicity               : int  1 2 3 4 5 6 NA NA NA NA ...
 $ Ethnic                  : chr  "White" "Asian" "Latino" "Black" ...
 $ Education               : int  1 2 3 4 5 6 NA NA NA NA ...
 $ Education_level         : chr  "Some high school/secondary school" "High school degree/completed secondary school" "Some university" "University degree" ...
 $ YearlyIncome            : int  1 2 3 4 5 6 7 NA NA NA ...
 $ Income                  : chr  "Less than $10,000 USD a year" "USD $10,000-$20,000" "USD $20,000-$40,000" "USD USD $40,000-$60,000" ...
 $ HighestEducationPar     : int  1 2 3 4 5 6 NA NA NA NA ...
 $ Parent_Highest_Education: chr  "Some high school/secondary school" "High school degree/completed secondary school" "Some university" "University degree" ...
 $ Atten_check_ans_1       : int  1 2 3 4 5 NA NA NA NA NA ...
 $ Attention_Check         : chr  "strongly disagree" "moderately disagree" "neither disagree nor agree" "moderately agree" ...



Example of large dataset (note it has >200 columns so I just took the mentioned example above).
> str(my_data)
'data.frame':   35 obs. of  228 variables:
 $ Citizenship                     : chr  "144" "191" "191" "191" ...
 $ CountryofBirth                  : chr  "144" "191" "191" "191" ...
 $ StartDate                       : chr  "2019-05-17 13:49:35" "2019-05-17 12:54:30" "2019-05-17 12:54:40" "2019-05-17 12:54:20" ...
 $ EndDate                         : chr  "2019-05-17 14:00:12" "2019-05-17 13:00:21" "2019-05-17 13:02:02" "2019-05-17 13:04:25" ...
 $ Status                          : chr  "0" "0" "0" "0" ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...