r - 如何在数据集中为跨 STUDY 的共享变量在数据集中创建 Y/N 标志
问题描述
我想在数据集中创建一个 YES/NO 标志,这样如果VARIABLE
列中的变量出现在每个STUDY
YES 中,否则 NO。因此,例如,当所有研究中都存在 AGE 时,该标志应为“是”,否则为“否”。
这里有一个简单的示例,但我的数据要大得多,并且还有其他列:
STUDY VARIABLE
STUDY1 AGE
STUDY1 SEX
STUDY1 WT
STUDY2 AGE
STUDY2 RACE
STUDY2 WT
STUDY3 AGE
STUDY3 SEX
STUDY3 WT
输出应该是:
STUDY VARIABLE FLAG
STUDY1 AGE YES
STUDY1 SEX NO
STUDY1 WT YES
STUDY2 AGE YES
STUDY2 RACE NO
STUDY2 WT YES
STUDY3 AGE YES
STUDY3 SEX NO
STUDY3 WT YES
我如何在 R 中使用 `data.table' 做到这一点?
解决方案
你可以试试
df[, n := (.N == 3), by = VARIABLE][, FLAG := c("YES", "NO")[match(FLAG, c(TRUE, FALSE))]]
STUDY VARIABLE FLAG
1: STUDY1 AGE YES
2: STUDY1 SEX NO
3: STUDY1 WT YES
4: STUDY2 AGE YES
5: STUDY2 RACE NO
6: STUDY2 WT YES
7: STUDY3 AGE YES
8: STUDY3 SEX NO
9: STUDY3 WT YES
如果您需要通用方式,请告诉我(具体情况将不胜感激)。
df[, FLAG := (.N == df[,uniqueN(n = uniqueN(STUDY), STUDY)]), by = VARIABLE][, FLAG := c("YES", "NO")[match(FLAG, c(TRUE, FALSE))]]
推荐阅读
- haskell - 大数整数类型的性能
- python - Pythonic 方法来分隔基本名称和目录路径
- mysql - Laravel Eloquent - 从关系中检索数据
- python - 有没有一种有效的方法来绘制季节图,以便在时间序列上保留顺序?
- bi-publisher - BI Publisher 突发结果返回“无可用数据”
- unity3d - Unity aab 不符合 Google Play 64 位要求
- javascript - 我有一个同时定义和未定义的变量
- android - 如何使 ConstraintLayout 中的 View 填充可用高度?
- unix - Unix在特定文本之后从文件中读取变量
- python - Matplotlib 甜甜圈标签/注释位置