假设我有一个数据框,看起来像这样:
我希望创建一个新列,根据每个变量在顶部的
在这个简化的例子中,结果应如下所示:
请注意,每个唯一的
是否有一种简单的方法可以解决这个问题,在顶部有大量变量的情况下也能工作,并且潜在地不仅限于
var1 var2 var3 var4
a TRUE FALSE TRUE FALSE
b TRUE TRUE TRUE FALSE
c FALSE TRUE FALSE TRUE
d TRUE FALSE FALSE FALSE
e TRUE FALSE TRUE FALSE
f FALSE TRUE FALSE TRUE
我希望创建一个新列,根据每个变量在顶部的
TRUE
和FALSE
的排列方式,将a
到f
分配给类别。在这个简化的例子中,结果应如下所示:
var1 var2 var3 var4 category
a TRUE FALSE TRUE FALSE A
b TRUE TRUE TRUE FALSE B
c FALSE TRUE FALSE TRUE C
d TRUE FALSE FALSE FALSE D
e TRUE FALSE TRUE FALSE A
f FALSE TRUE FALSE TRUE C
请注意,每个唯一的
TRUE
和FALSE
排列组合都成为不同的分类,由于a
和e
具有相同的排列组合,它们最终属于同一类别(A
)。是否有一种简单的方法可以解决这个问题,在顶部有大量变量的情况下也能工作,并且潜在地不仅限于
TRUE
和 FALSE
,而且如果数据框中填充了类别/数字呢?
LETTERS[with(list(x = interaction(df)), match(x, x))]
稍微简化了一下。 - thelatemail