说我有一个dataframe
xy.df <- data.frame(x = runif(10), y = runif(10))
我想做的是:
- 在第1列中创建非冗余项目的列表
- 对于此列表中的每个项目(第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(....
谢谢