将self
视为
df1
和df1 = data.frame(a = c(1,2,2),
b = c(2, 2, 3), c = c(3, 2, 1),
label = c("abc", "bbb", "bca"))
> df1
a b c label
1 1 2 3 abc
2 2 2 2 bbb
3 2 3 1 bca
为
df2
合并它们以获得df2 = data.frame(a = c(2, 2, 1, 1, 1, 2), b = c(2, 2, 2, 2, 2, 3),
c = c(2, 2, 3, 3, 3, 1), d = c(0.1, 0.2, 0.8, 0.7, 0.6, 0.9))
> df2
a b c d
1 2 2 2 0.1
2 2 2 2 0.2
3 1 2 3 0.8
4 1 2 3 0.7
5 1 2 3 0.6
6 2 3 1 0.9
如下的最佳方法是什么?
df3
我希望输出与df3 = data.frame(a = c(2, 2, 1, 1, 1, 2), b = c(2, 2, 2, 2, 2, 3),
c = c(2, 2, 3, 3, 3, 1), d = c(0.1, 0.2, 0.8, 0.7, 0.6, 0.9),
label = c("bbb", "bbb", "abc", "abc", "abc", "bca"))
> df3
a b c d label
1 2 2 2 0.1 bbb
2 2 2 2 0.2 bbb
3 1 2 3 0.8 abc
4 1 2 3 0.7 abc
5 1 2 3 0.6 abc
6 2 3 1 0.9 bca
的大小相同,包含其所有属性和值,以及来自df2
的其他label
列,表示{{1}的唯一组合组}},df1
,a
属性。
我尝试了基本的b
函数
c
它适用于我的示例数据帧(如此示例),但是当我想将此逻辑应用于更大的数据集时,它不会返回我期望的输出。特别是输出的大小不与merge
的大小相同,但是尺寸更小。
我想知道是否有任何替代方法可以做到这一点,或者在大数据集中应用相同逻辑(在小数据帧中似乎工作正常)可能出错的任何想法。谢谢!