首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对如下数据框应用唯一条件

如何对如下数据框应用唯一条件
EN

Stack Overflow用户
提问于 2016-05-27 00:37:41
回答 1查看 155关注 0票数 0

下面是可重现的数据

代码语言:javascript
复制
df <- structure(list(df_A = structure(c(1L, 2L, 2L, 3L, 3L, 4L, 5L, 
    5L, 5L, 6L, 7L, 7L, 8L), .Label = c("2016-05-10", "2016-05-11", 
    "2016-05-12", "2016-05-14", "2016-05-15", "2016-05-17", "2016-05-18", 
    "2016-05-19"), class = "factor"), df_B = structure(1:13, .Label = c("SO-101", 
    "SO-102", "SO-103", "SO-104", "SO-105", "SO-106", "SO-107", "SO-108", 
    "SO-109", "SO-110", "SO-111", "SO-112", "SO-113"), class = "factor"), 
        df_C = c(1113L, 2312L, 2312L, 2314L, 2314L, 2546L, 2315L, 
        2315L, 2315L, 5689L, 2546L, 2546L, 2312L)), .Names = c("df_A", 
    "df_B", "df_C"), class = "data.frame", row.names = c(NA, -13L
    ))
> df1
         df_A   df_B df_C
1  2016-05-10 SO-101 1113
2  2016-05-11 SO-102 2312
3  2016-05-11 SO-103 2312
4  2016-05-12 SO-104 2314
5  2016-05-12 SO-105 2314
6  2016-05-14 SO-106 2546
7  2016-05-15 SO-107 2315
8  2016-05-15 SO-108 2315
9  2016-05-15 SO-109 2315
10 2016-05-17 SO-110 5689
11 2016-05-18 SO-111 2546
12 2016-05-18 SO-112 2546
13 2016-05-19 SO-113 2312

let say
df_B column represents the production order.
df_C column represents the product certificate

对于每个生产订单,可以有与前一个订单相同的证书,也可以是不同的证书。我想知道产品证书变更的日期。所以我想通过使用unique来子集df_c列中的行,但在这种情况下,我将丢失具有不同生产顺序的行,但稍后生成的证书是相同的。

df2是我想要的数据帧。

代码语言:javascript
复制
df2
        df_A   df_B df_C
1 2016-05-10 SO-101 1113
2 2016-05-11 SO-102 2312
3 2016-05-12 SO-104 2314
4 2016-05-14 SO-106 2546
5 2016-05-15 SO-107 2315
6 2016-05-17 SO-110 5689
7 2016-05-18 SO-111 2546
8 2016-05-19 SO-113 2312
EN

回答 1

Stack Overflow用户

发布于 2016-05-27 00:43:38

保留唯一值等效于删除重复的值。duplicated返回重复行的索引,因此我们可以过滤出在第1列和第3列中重复的行:

代码语言:javascript
复制
df[!duplicated(df[c(1, 3)]), ]
         df_A   df_B df_C
1  2016-05-10 SO-101 1113
2  2016-05-11 SO-102 2312
4  2016-05-12 SO-104 2314
6  2016-05-14 SO-106 2546
7  2016-05-15 SO-107 2315
10 2016-05-17 SO-110 5689
11 2016-05-18 SO-111 2546
13 2016-05-19 SO-113 2312

还值得指出的是,默认的duplicated参数是fromLast = FALSE,因此这将保留每个df_Adf_C列的第一个实例。只要您的数据是按起始日期排序的,这将为您提供根据您的请求更改证书的日期。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37466572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档