【发布时间】:2020-10-19 18:22:47
【问题描述】:
这是我正在处理的一小部分数据:
data<-structure(list(record_id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19), fracture1_lateral___1 = c(0,
1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), fracture1_medial___1 = c(0,
0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0), fracture1px_lateral___1 = c(0,
1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), fracture1px_medial___1 = c(0,
0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)), class = c("spec_tbl_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -19L), spec = structure(list(
cols = list(record_id = structure(list(), class = c("collector_double",
"collector")), fracture1_lateral___1 = structure(list(), class = c("collector_double",
"collector")), fracture1_medial___1 = structure(list(), class = c("collector_double",
"collector")), fracture1px_lateral___1 = structure(list(), class = c("collector_double",
"collector")), fracture1px_medial___1 = structure(list(), class = c("collector_double",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"))
我想确定是否有人检查了每个表单上的“相同”输出。 IE。如果他们在一个表格上点击“右髁”,他们也会在另一个表格上点击它,就像这张照片:
在我的数据中,我知道这段代码可以通过创建一个 TRUE/FALSE 的新变量来为我做到这一点,以判断这两个变量是否表示相同的内容(这就是我想要的):
data<-data%>%mutate(Same=(fracture1_medial___1==fracture1px_medial___1))
我的问题是,我需要在多个位置检查该变量,并且有一些特殊规则:
在那张照片中,有 4 个地方写着“右髁”,我需要知道的是:如果点击了左侧的任何一个框,那么是否至少点击了右侧的一个框? IE。如果我们注意到这张照片中的场景:
“fracture1_lateral_1”和“fracture1px_medial”都被点击了,这很好,会导致“TRUE”,但下面的“fracture1px_medial”和“fracture1px_lateral”的情况将是FALSE。
可能有 10 个“右髁”变量要比较(每边 5 个),但例如在这张照片中,“右髁”变量是:
data$fracture1_medial_1, data$fracture1_lateral_1, data$fracture1px_medial_1, data$fracture1px_lateral_1
根据@Ben 的评论进行编辑以进行澄清:
我最终想要的是这个专栏:
在那张照片中,您可以看到,如果在左侧两列中的至少一列和右侧两列中的至少一列中找到“1”,则结果为“是”,或者如果全部为零穿过它的方式是“是”,但如果左侧或右侧只有“1”......它是“否”
有什么解决办法吗? Tidyverse 会更好,因为我已经习惯了。
【问题讨论】:
-
看起来您正在使用 REDCap 复选框。是否有可能开发一个很好的按比例缩小的示例起始数据框架(可能建立在帖子中包含的数据基础上,但这也演示了“在多个位置检查变量”和“特殊规则”)?也许想出一个“期望的最终结果数据框架”来展示您想对原始数据进行编码,以及最终结果应该是什么样子?然后,也许可以得出一个普遍的答案。
-
@Ben 我希望评论有助于澄清,感谢您花时间考虑。