r - 如何列出与 R 中另一个变量相关的变量的类别?

标签 r dplyr

我在 R 中有一个包含超过 600k obs 的数据集。我创建了一个“key”变量,我想知道有多少个不同的键与 ID 变量相关。我的数据集看起来像这样:

id <- c("58497484", "58544005", "74766653", "74764718", "62824455", "58497484", "58497484")
key <- c("5718368_09/06/1981_3_2014", "2077485_02/06/1977_8_2014", "2091585_23/10/1982_1_2014", "2077388_30/01/2000_11_2017", "2082225_02/07/1998_10_2017", "2077450_04/05/2001_1_2016", "2077477_03/03/1978_8_2017")

data <- as.data.frame(cbind(id, key))

因此,如您所见,ID“58497484”重复了 3 次,但显示了 3 个不同的键。我想要的是在表中列出每个 id 及其各自的键,因此它看起来像这样:

 id                  key
58497484     5718368_09/06/1981_3_2014
             2077450_04/05/2001_1_2016
             2077477_03/03/1978_8_2017

58544005     2077485_02/06/1977_8_2014
74766653     2091585_23/10/1982_1_2014
74764718     2077388_30/01/2000_11_2017
62824455     2082225_02/07/1998_10_2017

有什么想法可以让我完成这项工作吗?我已经尝试过使用这两个变量的 dplyr 和 group_by,但没有得到所需的输出。

最佳答案

我们可以先排列重复项,然后用空白单元格替换:

library(dplyr)
data %>% 
  arrange(id) %>% 
  mutate(id = ifelse(duplicated(id), "", id))
        id                        key
1 58497484  5718368_09/06/1981_3_2014
2           2077450_04/05/2001_1_2016
3           2077477_03/03/1978_8_2017
4 58544005  2077485_02/06/1977_8_2014
5 62824455 2082225_02/07/1998_10_2017
6 74764718 2077388_30/01/2000_11_2017
7 74766653  2091585_23/10/1982_1_2014

关于r - 如何列出与 R 中另一个变量相关的变量的类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70147701/

相关文章:

R Shiny in Memory Application 或 noSQL

r - 无法使用 Monetdb.R 连接到本地数据库

r - 从分组数据框的第一行创建相对值

r - 运行 weathercan 包时出错 - 致命 SSL/TLS 警报(例如握手失败))

r - 如何在 dplyr 中使用或/和对 data.frame 进行子集化

r - 在 dplyr 1.0.0 中使用 case_when 跨多个列应用条件

r - 我可以在单个 dplyr 语句中切换分组变量吗?

r - 绘图中的自定义离散色阶

r - R中矩阵的就地修改

r - 如何通过do函数在特定列中拆分不同数量的字符串