假设我有一个数据框
xy.df <- data.frame(x = runif(10), y = runif(10))
我想做的是:
我已尝试使用dplyr
进行一些测试,但我仍然没有得到它!
df = xy.df %>% group_by(xy.df$x)
任何帮助都将不胜感激。
答案 0 :(得分:0)
很抱歉,我想用前面的示例简化我的问题,所以这里有一个数据框的小例子
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) ....
感谢
答案 1 :(得分:0)
试试这个:
您的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"