Кадр данных R объединяется по нескольким столбцам в df.x - PullRequest
0 голосов
/ 11 ноября 2019

Возможно ли объединить по нескольким столбцам в df_a

Например, если у меня есть df_a и df_b, где мой df_a выглядит как

SKS1 SKS2
UXCC77  NA
UXCC00  NA
UXCC00  UXCD00
UXCD00  NA
UXCD60  NA
UXME10  NA

, а df_b имеет описания длямои коды SKS.

SKS desc
UXCC77  Left Leg
UXCC00  Right Leg
UXCD00  Right Arm
UXCD60  Left Arm
UXME10  Head

и т. д.

Я хочу сделать что-то вроде

new_df <- merge(x = df_a, y = df_b, by.x = paste0("SKS", 1:ncol(df_a)), by.y = "SKS", all.x = TRUE)

Так что мой вывод

SKS1 SKS2 Desc1 Desc2
UXCC77  NA Left Leg NA
UXCC00  NA Right Leg NA
UXCC00  UXCD00 Right Leg   Right Arm
UXCD00  NA Right Arm NA
UXCD60  NA Left Arm NA
UXME10  NA Head NA

или только с одним дескриптором, где "/" разделяет описания.

Так что мой вывод равен

SKS1 SKS2 Desc1
UXCC77  NA "Left Leg"
UXCC00  NA "Right Leg"
UXCC00  UXCD00 "Right Leg"/"Right Arm"
UXCD00  NA "Right Arm"
UXCD60  NA "Left Arm"
UXME10  NA "Head"

dput из df_a

structure(list(SKS_koder_samlet = structure(c(3L, 1L, 2L, 4L, 
5L, 6L), .Label = c("UXCC00", "UXCC00/UXCD00", "UXCC77", "UXCD00", 
"UXCD60", "UXME10"), class = "factor"), SKS1 = structure(c(2L, 
1L, 1L, 3L, 4L, 5L), .Label = c("UXCC00", "UXCC77", "UXCD00", 
"UXCD60", "UXME10"), class = "factor"), SKS2 = structure(c(NA, 
NA, 3L, NA, NA, NA), .Label = c("UXCC00", "UXCC77", "UXCD00", 
"UXCD60", "UXME10"), class = "factor")), class = "data.frame", row.names = c(NA, 
-6L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...