【发布时间】:2018-11-14 23:29:58
【问题描述】:
我有一个大型数据框,在下面进行了简化。鉴于以下数据框结构,我需要折叠以返回两个不同的行,其中 col3 具有不同的值,但 col1 和 col2 具有唯一值。
dat <- data.frame("col1" = c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
"col2" = c( "A","A", "A", "A", "A", "A", "A", "A", "A", "A"," A", "A", "A", "A", "A"),
"col3" = c( "Z", "Z", "Z", "Z", "Z", "Z", "Z", "Z", "Z", "Y", "Y", "Y", "Y", "Y", "Y"))
col1 col2 col3
1 1 A Z
2 1 A Z
3 1 A Z
4 1 A Z
5 1 A Z
6 1 A Z
7 1 A Z
8 1 A Z
9 1 A Z
10 1 A Y
11 1 A Y
12 1 A Y
13 1 A Y
14 1 A Y
15 1 A Y
所以在这种情况下,我只需要返回以下内容:
col1 col2 col3
1 A Z
1 A Y
但是,如果 col3 只是 z,我将不返回任何行。我可以使用 table 函数获取这些数据的计数,但我需要查看实际的行。 有什么想法吗?
谢谢
【问题讨论】:
-
好吧,我设法获得了所需的输出,但我想知道它是否适用于您的真实数据。我通过使用
as.data.frame(apply(dat, 2, unique))得到它。让我知道这是否适合您。 -
在示例数据中哪里可以看到 col1 = col2?您是指 col1、col2 值的每个唯一组合吗?
-
@Gopala,是的,我就是这个意思。我为糟糕的措辞道歉。我已经更新以更有意义。
标签: r