我有一个表格,如下所示:
| 标题|全名|身份证|
| --------------|--------------|--------------|
| 布鲁布鲁|一些标题|dk29D|
| 布拉布拉|标题blabla 1|dRAQx|
| 布拉布拉|标题blabla 1|Yprst|
| 布拉布拉|标题blabla 2|dRAQx|
| 布拉布拉|标题blabla 2|Yprst|
| 点子|其他标题|qW45m|
该表最终应如下所示:
| 标题|全名|身份证|
| --------------|--------------|--------------|
| 布鲁布鲁|一些标题|dk29D|
| 布拉布拉|标题blabla 1|dRAQx|
| 布拉布拉|标题blabla 2|Yprst|
| 点子|其他标题|qW45m|
因此,我不关心blabla 1是否与dRAQx或Yprst相关联(blabla 2也是如此)。关键是要维护一个title示例和一个id示例。
sampledata <- data.frame(
title = c("blublu", rep("blabla", 4), "pips"),
full_name = c("some title", rep("title blabla1", 2), rep("title blabla2", 2), "some other title"),
id = c("dk29D", rep(c("dRAQx","Yprst"), 2), "qW45m")
)
我试过很多方法,但最好的结果是:
sampledata %>%
group_by(title) %>%
mutate(id = sample(id, length(id), replace = FALSE)) %>%
distinct(full_name, .keep_all = TRUE) %>%
mutate(same_id = any(duplicated(id)))
这里的问题是它是随机的,有时保留的ID是相同的(由same_id变量跟踪)。
我希望我的问题可以理解。
我很期待你们的回复。先谢谢你们。
1条答案
按热度按时间dsekswqp1#
我们可以这样做:
技巧是使用
full_name
中的数字作为应该过滤的row_number: