计算R中多个列的唯一值

计算R中多个列的唯一值,r,dplyr,bigdata,R,Dplyr,Bigdata,假设我有如下data.frame: a b 1 b c 2 c e 3 d a 4 我试图计算前两列的唯一值,因此结果应该是5,它代表abcde 但是我的问题是我的数据太大了,大约7000000行,所以我想把第二列的行附加到第一列中。但我只知道如何一次追加一行,所以有人知道如何将整个列追加到第一行中吗?或者你对解决这个问题有更好的想法吗 提前感谢我们可以将取消列出与唯一 length(unique(unlist(df1[1:2]))) #[1] 5 或者转置数据集,即在对前2列进行子集设置后

假设我有如下data.frame:

a b 1
b c 2
c e 3
d a 4
我试图计算前两列的唯一值,因此结果应该是
5
,它代表
abcde

但是我的问题是我的数据太大了,大约7000000行,所以我想把第二列的行附加到第一列中。但我只知道如何一次追加一行,所以有人知道如何将整个列追加到第一行中吗?或者你对解决这个问题有更好的想法吗


提前感谢

我们可以将
取消列出
唯一

length(unique(unlist(df1[1:2])))
#[1] 5
或者转置数据集,即在对前2列进行子集设置后,将其连接到
向量
,获取
唯一
元素并找到
长度

length(unique(c(t(df1[-3]))))
#[1] 5
数据
df1作为一种紧凑的替代方案,您还可以使用set函数
union

length(with(df1, union(v1, v2)))
[1] 5
union
的底层代码几乎与@akrun的代码相同,可以看到它在没有括号的情况下键入函数:

union
function (x, y) 
unique(c(as.vector(x), as.vector(y)))
<bytecode: 0x41f0790>
<environment: namespace:base>
联合
函数(x,y)
唯一(c(作为向量(x),作为向量(y)))
union
function (x, y) 
unique(c(as.vector(x), as.vector(y)))
<bytecode: 0x41f0790>
<environment: namespace:base>