【发布时间】:2021-04-20 08:46:08
【问题描述】:
我对 R 比较陌生,如果这太离谱了,我深表歉意。但我有一个看起来像这样的数据集:
#simplified input - actual data has ~20K observations,
#V1 is a categorical variable with 2 options, V3 is a categorical variable with 23 options
df <- tribble(
~V1, ~V2, ~V3,
"A", "a", "Z",
"A", "a", "Y",
"A", "b", "X",
"A", "b", "Z",
"B", "c", "Z",
"B", "a", "Z",
"B", "a", "Y",
"A", "d", "X",
"A", "e", "X",
"A", "f", "X",
"A", "g", "X",
"B", "g", "X",
"B", "h", "X",
"A", "i", "X",
)
我正在尝试根据 V1 和 V3 的组合来计算 V2 的不同值。在这个示例数据中,“a”可以在 A 和 B 中找到,并且可以分类为 Z 或 Y。所以我设想的输出看起来像,其中数字是 V2 的不同计数:
想要的输出:
df <- tribble(
~V1, ~Z, ~Y, ~X,
"A_only", 1, 0, 5,
"B_only", 1, 0, 1,
"Both_A_and_B", 1, 1, 1
)
老实说,我完全不知道如何做到这一点,所以任何想法都将不胜感激。
【问题讨论】:
-
我不确定我是否理解您的问题(尤其是“仅 A”、“仅 B”等),但这行得通吗?
x %>% group_by(V1, V3) %>% distinct(V2) %>% count() -
是的,我可能没有很好地解释我的问题。不幸的是,您的建议并不能完全满足我的需求。但是,假设对于 V1,A 和 B 是两个人名列表。 V2 表示列表中的名称,其中 a、b、c 是 if 的一部分。然后 V3 是描述这些名称的其他因素,例如“流行的男性名称”、“流行的女性名称”、“流行的狗名”。一些名称可以通过这些(而不仅仅是一个)的组合来描述。我要弄清楚的是,有多少名称,按这些描述性因素组织,仅在一个列表或两个列表中。
-
@akrun 道歉,添加了预期的解决方案
-
@for-alfie 请将其应用于您的原始数据集,看看结果如何。
标签: r