我有两个数据框:
ERAS
是主要的集合,具有较少的行但具有更多的列。bm
,另一个具有更多行的数据框,我正尝试从中提取数据DOB
(出生日期)。并非所有DOB都会匹配,并且bm
我需要一个合并的数据框,可以从bm
中提取数据作为ERAS
中的新列。新的df应该具有原始ERAS
中的所有行,而bm数据框中的所有丢失数据都将为NA。
bm
数据框中筛选出与ERAS
中的DOB(POSIXct数据)相匹配的行,但行不通。数据帧:
dput(head(ERAS, 100))
structure(list(DOB = structure(c(-307843200, -1222300800, -437097600,
-70246800, 7426800, -552099600, -440985600, 169772400, 218419200,
-1044144000, -864698400, -663811200, -275706000, -783219600,
79052400, -1038960000, -1051664400, -177814800, -1171411200,
-698025600, -1247706000, -586227600, -288489600, 203641200, -308275200,
-936406800, -444614400, 826329600, -541900800, -784947600, -978825600,
-950749200, -547347600, 438998400, -525920400, -1031274000, -711684000,
-273373200, -473644800, -989629200, -674960400, -1050886800,
-299898000, -709178400, -586573200, -1399597200, -342489600,
-1155430800, -505699200, -846982800, -1146013200, 464482800,
406598400, -1068940800, -559094400, -459910800, -968634000, -1082595600,
-1098316800, -768963600, -625795200, -754790400, -534124800,
-265942800, -336963600, -800589600, -760320000, -613098000, -662169600,
-816138000, -910141200, -734317200, -889664400, -1027040400,
-713498400, -1039392000, -522205200, -685846800, -434505600,
-871696800, -505353600, -1019437200, -1003190400, -714708000,
-518317200, -611888400, -949708800, -689212800, -581907600, 701910000,
-740451600, -3286800, -113014800, -809661600, -608518800, -264214800,
647823600, -665539200, -883270800, -592185600), class = c("POSIXct",
"POSIXt"), tzone = ""), Fluid_Volume = c(2000L, 1695L, 2075L,
3470L, 3750L, 3720L, 3800L, 3670L, 2000L, 1835L, 2880L, 3980L,
5000L, 5095L, 3970L, 4170L, 2384L, 3580L, 1959L, 2590L, 3250L,
8788L, 3180L, 3970L, 2000L, 3500L, 2860L, 3085L, 3650L, 2380L,
3461L, 2810L, 3000L, 5250L, 3600L, 6402L, 3500L, 4050L, 3825L,
3175L, 3040L, 2161L, 1500L, 2500L, 2000L, 3270L, 2020L, 3000L,
3100L, 2250L, 4111L, 2000L, 4860L, 3000L, 2200L, 1470L, 2350L,
1500L, 2910L, 2910L, 3380L, 2670L, 4510L, 3885L, 1500L, 2200L,
3866L, 4130L, 2000L, 2890L, 4002L, 3415L, 3850L, 3265L, 2640L,
2660L, 3000L, 2900L, 5720L, 3519L, 2500L, 4680L, 3065L, 2910L,
2925L, 1750L, 2000L, 4405L, 2500L, 2480L, 4400L, 2915L, 2225L,
4080L, 595L, 6540L, 4000L, 4130L, 1770L, 2790L), Mobilised_D1 = structure(c(2L,
2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L,
1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L,
1L, 1L, 1L, NA, 2L, 1L, 1L, 2L, NA, 1L, 2L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 2L), .Label = c("N", "Y"), class = "factor")), row.names = c(NA,
100L), class = "data.frame")
dput(head(bmi, 170))
structure(list(ID = 1:170, DOB = structure(c(-769654800, -388803600,
-1108425600, -448588800, -801194400, -629942400, -930099600,
-551494800, -921891600, 488156400, -839988000, -766458000, -1085706000,
-423363600, -848624400, 50972400, -704336400, -871610400, -174013200,
717548400, -1172016000, -1025917200, -355798800, -212806800,
-1230940800, -212634000, -660268800, -781664400, -280195200,
-1184288400, -1126828800, -685069200, -822877200, -836186400,
-594864000, -223171200, -1480464000, -1120957200, -557974800,
-394851600, -80182800, -709092000, -1466211600, -1129852800,
-1034553600, -861670800, -697680000, -921373200, -1328400000,
-925088400, -325299600, -1021251600, -468720000, -279763200,
-411004800, -613184400, -924570000, -652582800, -412646400, -335581200,
-1017882000, -624240000, -757468800, -952563600, -1059958800,
-487904400, -1180227600, -1029114000, -93484800, -681440400,
-214704000, -1415577600, 247795200, -813286800, -1029718800,
-884826000, -920336400, 360457200, -653706000, -993949200, -1090026000,
-790909200, -978220800, 130204800, -818298000, -288057600, 296780400,
-100569600, -935888400, -745117200, -757641600, -472521600, -927248400,
-1053651600, -189302400, -770259600, -736218000, -1004832000,
-371952000, -960426000, -919818000, -859165200, -1234396800,
-757641600, -1250211600, -681786000, -1138924800, -1302483600,
-497664000, -758764800, -805255200, -1150419600, -941850000,
329871600, -573177600, -669862800, -468374400, -684723600, -517712400,
-779335200, -356835600, 553993200, 448329600, -861411600, -828061200,
-870314400, -924224400, -226368000, -1093741200, -477360000,
-580179600, -142563600, -728956800, -69037200, -1165708800, -1130716800,
-1103673600, -1356048000, -179110800, -265856400, 721353600,
-684637200, -347673600, -1130457600, -14432400, -1199318400,
-529200000, -633916800, -1134172800, -987642000, -1025053200,
196729200, -81478800, -879210000, -577846800, -570758400, -1081213200,
-1099785600, -650941200, -386470800, -783133200, -729475200,
-727574400, -1372986000, -877050000, -588387600, -967338000,
-434678400, -542595600, -671504400), class = c("POSIXct", "POSIXt"
), tzone = ""), BMI = c(29, 39, 26, 34, 47, 31, 21, 30, 34, 30,
29, 36, 33, 28, 30, 22, 18, 31, 34, 25, 26, 30, 21, 36, 34, 36,
30, 29, 23, 32, 32, 24, 28, 25, 24, 21, 23, 22, 32, 25, 18, 24,
29, 27, 28, 29, 30, 38, 22, 36, 32, 32, 34, 25, 36, 23, 24, 25,
34, 29, 27, 29, 35, 30, 24, 27, 30, 28, 25, 30, 26, 29, 27, 30,
19, 34, 33, 33, 26, 25, 38, 26, 37, 23, 19, 31, 29, 34, 33, 29,
20, 21, 41, 26, 25, 32, 34, 21, NA, 27, 25, 21, 26, 29, 28, 35,
21, 25, 40, 22, 24, 32, 26, 21, 22, 23, 35, 32, 35, 27, 42, 28,
36, 35, 27, 29, 34, 27, 24, 23, 38, 41, 26, 29, 23, 19, 33, 27,
39, 27, 20, 34, 40, 21, 26, 25.6, 29, NA, 26, 30.4, NA, NA, 31,
28, 30, 40, 26, 21, 34, 38, 27, 23, 26, 31, 34, 33, NA, 30, 23,
23)), row.names = c(NA, 170L), class = "data.frame")
merged <- merge(ERAS, bmi, by.x = "DOB", by.y = "DOB")
bm <- read.csv("chi_bmi.csv", na.strings = c("", "?"))
bm$DOB <- as.POSIXct(bm$DOB, format = "%d/%m/%Y")
bm$bm <- bm$BMI
View(bm)
bm <- bm[, -3]
dput(head(bm, 170))
structure(list(ID = 1:170, DOB = structure(c(-769654800, -388803600,
-1108425600, -448588800, -801194400, -629942400, -930099600,
-551494800, -921891600, 488156400, -839988000, -766458000, -1085706000,
-423363600, -848624400, 50972400, -704336400, -871610400, -174013200,
717548400, -1172016000, -1025917200, -355798800, -212806800,
-1230940800, -212634000, -660268800, -781664400, -280195200,
-1184288400, -1126828800, -685069200, -822877200, -836186400,
-594864000, -223171200, -1480464000, -1120957200, -557974800,
-394851600, -80182800, -709092000, -1466211600, -1129852800,
-1034553600, -861670800, -697680000, -921373200, -1328400000,
-925088400, -325299600, -1021251600, -468720000, -279763200,
-411004800, -613184400, -924570000, -652582800, -412646400, -335581200,
-1017882000, -624240000, -757468800, -952563600, -1059958800,
-487904400, -1180227600, -1029114000, -93484800, -681440400,
-214704000, -1415577600, 247795200, -813286800, -1029718800,
-884826000, -920336400, 360457200, -653706000, -993949200, -1090026000,
-790909200, -978220800, 130204800, -818298000, -288057600, 296780400,
-100569600, -935888400, -745117200, -757641600, -472521600, -927248400,
-1053651600, -189302400, -770259600, -736218000, -1004832000,
-371952000, -960426000, -919818000, -859165200, -1234396800,
-757641600, -1250211600, -681786000, -1138924800, -1302483600,
-497664000, -758764800, -805255200, -1150419600, -941850000,
329871600, -573177600, -669862800, -468374400, -684723600, -517712400,
-779335200, -356835600, 553993200, 448329600, -861411600, -828061200,
-870314400, -924224400, -226368000, -1093741200, -477360000,
-580179600, -142563600, -728956800, -69037200, -1165708800, -1130716800,
-1103673600, -1356048000, -179110800, -265856400, 721353600,
-684637200, -347673600, -1130457600, -14432400, -1199318400,
-529200000, -633916800, -1134172800, -987642000, -1025053200,
196729200, -81478800, -879210000, -577846800, -570758400, -1081213200,
-1099785600, -650941200, -386470800, -783133200, -729475200,
-727574400, -1372986000, -877050000, -588387600, -967338000,
-434678400, -542595600, -671504400), class = c("POSIXct", "POSIXt"
), tzone = ""), bm = c(29, 39, 26, 34, 47, 31, 21, 30, 34, 30,
29, 36, 33, 28, 30, 22, 18, 31, 34, 25, 26, 30, 21, 36, 34, 36,
30, 29, 23, 32, 32, 24, 28, 25, 24, 21, 23, 22, 32, 25, 18, 24,
29, 27, 28, 29, 30, 38, 22, 36, 32, 32, 34, 25, 36, 23, 24, 25,
34, 29, 27, 29, 35, 30, 24, 27, 30, 28, 25, 30, 26, 29, 27, 30,
19, 34, 33, 33, 26, 25, 38, 26, 37, 23, 19, 31, 29, 34, 33, 29,
20, 21, 41, 26, 25, 32, 34, 21, NA, 27, 25, 21, 26, 29, 28, 35,
21, 25, 40, 22, 24, 32, 26, 21, 22, 23, 35, 32, 35, 27, 42, 28,
36, 35, 27, 29, 34, 27, 24, 23, 38, 41, 26, 29, 23, 19, 33, 27,
39, 27, 20, 34, 40, 21, 26, 25.6, 29, NA, 26, 30.4, NA, NA, 31,
28, 30, 40, 26, 21, 34, 38, 27, 23, 26, 31, 34, 33, NA, 30, 23,
23)), row.names = c(NA, 170L), class = "data.frame")
merged <- merge(ERAS, bm, by.x = "DOB", by.y = "DOB")
道歉,包括这么多行,但是正如我提到的,并不是所有的DOB都是两者之间的匹配。
我对此很陌生,因此希望对我所做的事情进行一些解释 错误并解释如何解决此问题。