R DataFrame:查找与第2列中项目相对应的第1列中的元素列表



说我有一个dataframe

xy.df <- data.frame(x = runif(10), y = runif(10))

我想做的是:

  1. 在第1列中创建非冗余项目的列表
  2. 对于此列表中的每个项目(第1列中的项目(,标识第2列中的相应项目列表

我尝试过使用dplyr进行了一些测试,但我仍然不明白!

df = xy.df %>% group_by(xy.df$x)

任何帮助将不胜感激。

尝试以下:

您的data.frame:

db<-data.frame(idProcess=c("5aa78","5aa78","9a978"),
                ip=c("128.55.12.81","128.55.12.81","130.50.12.99"),
                port=c(9265,59264,63925))

构建输出(不是最有效的方法,但很清楚我在做什么(

list<-NULL
id_unique<-as.character(unique(db$idProcess)) 
for (i in 1:length(id_unique))
{
   ip_i<-unique(as.character(db[as.character(db$idProcess)==id_unique[[i]],"ip"]))
   list[eval(id_unique[[i]])]<-list(c(ip_i,unique(as.character(db[as.character(db$idProcess)==id_unique[[i]],"port"]))))
}

您的输出

list
$`5aa78`
[1] "128.55.12.81" "9265"         "59264"       
$`9a978`
[1] "130.50.12.99" "63925" 

对不起,我想简化先例示例我的问题,因此在这里是dataframe的一个小示例

idprocess |IP |端口|

5AA78 |128.55.12.81 |9265

5AA78 |128.55.12.81 |59264

9A978 |130.50.12.99 |63925

.....

所以我想要的是列表的列表,在全局列表中的每个条目,如果该过程名称为每个过程,则获取一个非冗余IP和非冗余端口的列表,即。

列表[" 5AA78"] =(128.55.12.81,9265,59264(

列表[" 9a978"] =(130.50.12.99,63925(....

谢谢

最新更新