【发布时间】:2017-02-21 12:24:11
【问题描述】:
我有一个包含多列的数据框,我希望能够隔离其中两列并获得唯一值的总数...这是我的意思的一个示例:
假设我有一个数据框 df:
df<- data.frame(v1 = c(1, 2, 3, 2, "a"), v2 = c("a", 2 ,"b","b", 4))
df
v1 v2
1 1 a
2 2 2
3 3 b
4 2 b
5 a 4
现在我要做的是仅提取两列上的唯一值。因此,如果我只对每一列使用 unique(),输出将如下所示:
> unique(df[,1])
[1] 1 2 3 a
> unique(df[,2])
[1] a 2 b 4
但这并不好,因为它只能找到每列的唯一值,而我需要两列的唯一值总数!例如,'a' 在两列中重复,但我只希望它计算一次。对于我需要的示例输出;想象一下列 V1 和 V2 像这样叠放在一起:
V1_V2
1 1
2 2
3 3
4 2
5 a
6 a
7 2
8 b
9 b
10 4
V1_V2 的唯一值是:
V1_V2
1 1
2 2
3 3
5 a
8 b
10 4
然后我可以使用 nrow() 来计算行数。 有什么想法可以实现吗?
【问题讨论】:
-
unique(unlist(df))?但要注意当你混合这样的类型时会发生强制。 -
unique(c(df[,1],df[,2] ))