The initial problem was copying data from one column to another column if a condition in another column was met; see my previous post (Copy data from one column to another column if condition in another column is met) (acknowledgment to @jay.sf)
On real data frame I get the following error
"Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 1, 0"
This is because I am trying to cbind 'dfa' with 'df23' which is not equal to dfa with respect to row length.
Is there a way to negate this - i have tried alternatives to cbind e.g. bind_cols however it only works for Study ID 109 and ignores records 93,71,75
dfa <- data.frame(
study_id = c(93, 71, 75, 109, 109),
name = c(
"Noradrenaline.start.time.variation", "Noradrenaline.stop.time.variation",
"Noradrenaline.stop.time.variation", "Noradrenaline.stop.time.variation",
"Vasopressin.stop.time.variation"
),
value = c(FALSE, FALSE, FALSE, FALSE, FALSE),
expression = c(
"(norad_start_diff > -1 & norad_start_diff < 1)", "(norad_stop_diff > -1 & norad_stop_diff < 1)",
"(norad_stop_diff > -1 & norad_stop_diff < 1)", "(norad_stop_diff > -1 & norad_stop_diff < 1)",
"(vaso_stop_diff > -1 & vaso_stop_diff < 1)"
))
df23 <- data.frame(
study_id = c(
6, 8, 12, 18, 25, 26, 38, 40, 42, 47, 50, 51, 65, 69, 71, 72, 74, 75, 80, 81,
85, 86, 87, 88, 92, 93, 98, 99, 101, 106, 109, 114, 121, 122, 125
),
true_adrenaline_on = as.POSIXct(
c(
"2020-09-17 20:58:00", NA, NA, "2020-10-12 16:18:00", NA, NA,
"2020-11-30 18:34:00", NA, NA, NA, "2020-12-17 17:07:00", NA,
NA, NA, NA, NA, NA, NA, NA, "2021-01-29 16:19:00", NA, NA, NA,
NA, NA, NA, "2021-02-17 14:28:00", "2021-02-18 15:00:00", NA,
NA, NA, NA, NA, NA, NA
),
tz = "UTC"
),
verification_true_adren_on = as.POSIXct(
c(
"2020-09-17 20:58:00", NA, NA, "2020-10-12 16:18:00", NA, NA,
"2020-11-30 18:34:00", NA, NA, NA, "2020-12-17 17:07:00", NA,
NA, NA, NA, NA, NA, NA, NA, "2021-01-29 16:19:00", NA, NA, NA,
NA, NA, NA, "2021-02-17 14:28:00", "2021-02-18 14:52:00", NA,
NA, NA, NA, NA, NA, NA
),
tz = "UTC"
),
true_noradrenaline_on = as.POSIXct(
c(
"2020-09-17 23:00:00", "2020-09-21 14:10:00", "2020-10-01 16:03:00",
"2020-10-12 16:18:00", NA, "2020-11-05 14:15:00", "2020-11-30 18:34:00",
"2020-12-01 22:21:00", "2020-12-07 14:00:00", "2020-12-15 01:00:00",
"2020-12-17 17:07:00", "2020-12-17 23:08:00", "2021-01-11 22:27:00",
NA, "2021-01-20 01:00:00", "2021-01-18 17:12:00", NA, "2021-01-21 19:00:00",
"2021-01-28 16:50:00", "2021-01-29 16:19:00", "2021-02-03 21:00:00",
"2021-02-04 18:00:00", "2021-02-05 00:48:00", "2021-02-05 14:03:00",
"2021-02-11 13:35:00", "2021-02-12 04:00:00", "2021-02-17 14:28:00",
"2021-02-18 14:52:00", NA, "2021-02-25 13:00:00", "2021-02-26 21:45:00",
"2021-03-04 19:33:00", "2021-03-11 17:30:00", "2021-03-11 22:32:00",
NA
),
tz = "UTC"
),
verification_true_norad_on = as.POSIXct(
c(
"2020-09-17 23:00:00", "2020-09-21 14:10:00", "2020-10-01 16:03:00",
"2020-10-12 16:18:00", NA, "2020-11-05 14:15:00", "2020-11-30 18:34:00",
"2020-12-01 22:21:00", "2020-12-07 14:00:00", "2020-12-15 01:00:00",
"2020-12-17 17:07:00", "2020-12-17 23:08:00", "2021-01-11 22:27:00",
NA, "2021-01-20 01:20:00", "2021-01-18 17:12:00", NA, "2021-01-21 19:20:00",
"2021-01-28 16:50:00", "2021-01-29 16:19:00", "2021-02-03 21:00:00",
"2021-02-04 18:00:00", "2021-02-05 00:48:00", "2021-02-05 14:03:00",
"2021-02-11 13:35:00", "2021-02-12 05:05:00", "2021-02-17 14:28:00",
"2021-02-18 14:52:00", NA, "2021-02-25 13:05:00", "2021-02-26 21:45:00",
"2021-03-04 19:33:00", "2021-03-11 17:30:00", "2021-03-11 22:32:00",
NA
),
tz = "UTC"
),
true_metaraminol_on = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
verification_true_met_on = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
true_phenylephrine_on = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
verification_true_phen_on = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
true_vasopressin_on = as.POSIXct(
c(
"2020-09-18 09:00:00", NA, NA, "2020-10-12 23:00:00", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "2021-02-18 18:00:00", NA, NA, "2021-02-26 21:45:00",
NA, NA, NA, NA
),
tz = "UTC"
),
verification_true_vaso_on = as.POSIXct(
c(
"2020-09-18 09:00:00", NA, NA, "2020-10-12 23:00:00", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "2021-02-18 18:00:00", NA, NA, "2021-02-26 21:45:00",
NA, NA, NA, NA
),
tz = "UTC"
),
true_adrenaline_off = as.POSIXct(
c(
"2020-09-18 09:00:00", NA, NA, "2020-10-13 13:00:00", NA, NA,
"2020-12-03 08:00:00", NA, NA, NA, "2020-12-17 19:00:00", NA,
NA, NA, NA, NA, NA, NA, NA, "2021-01-30 09:00:00", NA, NA, NA,
NA, NA, NA, "2021-02-17 16:00:00", "2021-02-19 22:00:00", NA,
NA, NA, NA, NA, NA, NA
),
tz = "UTC"
),
verification_true_adren_off = as.POSIXct(
c(
"2020-09-18 09:00:00", NA, NA, "2020-10-13 13:00:00", NA, NA,
"2020-12-03 08:00:00", NA, NA, NA, "2020-12-17 19:00:00", NA,
NA, NA, NA, NA, NA, NA, NA, "2021-01-30 09:00:00", NA, NA, NA,
NA, NA, NA, "2021-02-17 16:00:00", "2021-02-19 22:00:00", NA,
NA, NA, NA, NA, NA, NA
),
tz = "UTC"
),
true_noradrenaline_off = as.POSIXct(
c(
"2020-09-21 07:00:00", "2020-09-21 22:00:00", "2020-10-01 17:00:00",
"2020-10-14 18:00:00", NA, "2020-11-06 18:00:00", "2020-12-02 23:00:00",
"2020-12-02 11:00:00", "2020-12-07 18:00:00", "2020-12-15 17:00:00",
"2020-12-19 09:00:00", "2020-12-20 00:00:00", "2021-01-12 01:00:00",
NA, "2021-01-20 16:00:00", "2021-01-19 04:00:00", NA, "2021-01-22 05:00:00",
"2021-01-29 05:00:00", "2021-01-30 05:00:00", "2021-02-04 05:00:00",
"2021-02-05 09:00:00", "2021-02-05 22:00:00", "2021-02-08 07:00:00",
"2021-02-12 08:00:00", "2021-02-12 09:00:00", "2021-02-18 04:00:00",
"2021-02-25 06:52:00", NA, "2021-02-26 06:00:00", "2021-02-27 15:00:00",
"2021-03-05 04:00:00", "2021-03-11 21:00:00", "2021-03-12 08:00:00",
NA
),
tz = "UTC"
),
verification_true_norad_off = as.POSIXct(
c(
"2020-09-21 07:00:00", "2020-09-21 22:00:00", "2020-10-01 17:00:00",
"2020-10-14 19:00:00", NA, "2020-11-06 18:00:00", "2020-12-02 23:00:00",
"2020-12-02 11:00:00", "2020-12-07 18:00:00", "2020-12-15 17:00:00",
"2020-12-19 09:00:00", "2020-12-20 00:00:00", "2021-01-12 01:12:00",
NA, "2021-01-19 17:30:00", "2021-01-19 04:00:00", NA, "2021-01-22 12:50:00",
"2021-01-29 05:00:00", "2021-01-30 05:00:00", "2021-02-04 05:00:00",
"2021-02-05 09:00:00", "2021-02-05 22:10:00", "2021-02-08 07:02:00",
"2021-02-12 08:00:00", "2021-02-12 09:05:00", "2021-02-18 04:00:00",
"2100-01-01 00:00:00", NA, "2021-02-26 06:00:00", "2021-02-27 17:01:00",
"2021-03-05 04:00:00", "2021-03-11 20:00:00", "2021-03-12 08:00:00",
NA
),
tz = "UTC"
),
true_metaraminol_off = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
verification_true_met_off = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
true_phenylephrine_off = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
verification_true_phen_off = as.POSIXct(
c(
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_
),
tz = "UTC"
),
true_vasopressin_off = as.POSIXct(
c(
"2020-09-21 07:00:00", NA, NA, "2020-10-14 00:00:00", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "2021-02-19 15:00:00", NA, NA, "2021-02-26 23:00:00",
NA, NA, NA, NA
),
tz = "UTC"
),
verification_true_vaso_off = as.POSIXct(
c(
"2100-01-01 00:00:00", NA, NA, "2020-10-14 00:00:00", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "2021-02-19 15:00:00", NA, NA, "2021-02-27 00:10:00",
NA, NA, NA, NA
),
tz = "UTC"))
a <- c(Adrenaline.start.time.variation = "true_adrenaline_on",
Noradrenaline.start.time.variation = "true_noradrenaline_on",
Metaraminol.start.time.variation = "true_metaraminol_on",
Phenylephrine.start.time.variation = "true_phenylephrine_on",
Vasopressin.start.time.variation = "true_vasopressin_on",
Adrenaline.stop.time.variation = "true_adrenaline_off",
Noradrenaline.stop.time.variation = "true_noradrenaline_off",
Metaraminol.stop.time.variation = "true_metaraminol_off",
Phenylephrine.stop.time.variation = "true_phenylephrine_off",
Vasopressin.stop.time.variation = "true_vasopressin_off")
subset(dfa, name %in% c("Adrenaline.start.time.variation",
"Noradrenaline.start.time.variation",
"Metaraminol.start.time.variation",
"Phenylephrine.start.time.variation",
"Vasopressin.start.time.variation",
"Adrenaline.stop.time.variation",
"Noradrenaline.stop.time.variation",
"Metaraminol.stop.time.variation",
"Phenylephrine.stop.time.variation",
"Vasopressin.stop.time.variation")) %>%
apply(MARGIN=1, \(x) {
mt <- match(a[match(x[2], names(a))], names(df23))
cbind(t(x[1:2]), df23[df23$study_id == x[1], c(mt, mt + 1)]) %>%
setNames(c('study_id', 'Conflict', 'initial', 'verification'))
}) %>% do.call(what=rbind) ```