加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

聚合具有相同ID的行并仅保留R中的唯一条目

发布时间:2020-12-14 04:48:31 所属栏目:百科 来源:网络整理
导读:我是R的初学者.我在R中有数据框如下: Id ValuesA_0_d Low_5524; Low_6412; Hi_50567A_0_d Low_5509; Low_6412; Low_6897; Hi_16021A_0_d Low_5524; Low_4930; Low_5886B_1_d Low_3697; Low_4519; Low_5524C_3_d Low_5576; Low_5581C_3_d Hi_30246C_3_d Low_
我是R的初学者.我在R中有数据框如下:

Id          Values
A_0_d   Low_5524; Low_6412; Hi_50567
A_0_d   Low_5509; Low_6412; Low_6897; Hi_16021
A_0_d   Low_5524; Low_4930; Low_5886
B_1_d   Low_3697; Low_4519; Low_5524
C_3_d   Low_5576; Low_5581
C_3_d   Hi_30246
C_3_d   Low_5576; Hi_30246

我想基于Ids聚合数据帧,即在一行中将相同ID的所有值分组,并且仅保留如下的唯一条目:

A_0_d   Low_5524; Low_6412; Hi_50567; Low_5509; Low_6897; Hi_16021; Low_4930; Low_5886  
B_1_d   Low_3697; Low_4519; Low_5524
C_3_d   Low_5576; Low_5581; Hi_30246

我可以利用聚合功能.请指导我.

解决方法

将’data.frame’转换为’data.table'(setDT(df1)).然后,在按’Ids’分组后,将’Values’拆分为“;”,取消列出输出,获取唯一元素并将其粘贴在一起

library(data.table)
setDT(df1)[,.(Values = paste(unique(unlist(strsplit(Values,"; "))),collapse="; ")),by = Id]
#   Id
#1: A_0_d
#2: B_1_d
#3: C_3_d
#                                                                           Values
#1: Low_5524; Low_6412; Hi_50567; Low_5509; Low_6897; Hi_16021; Low_4930; Low_5886
#2:                                                   Low_3697; Low_4519; Low_5524
#3:                                                   Low_5576; Low_5581; Hi_30246

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读