【问题标题】:Looping through groups with deldir() in R在 R 中使用 deldir() 遍历组
【发布时间】:2016-12-01 18:35:50
【问题描述】:

我输入了一些由三列组成的数据,X、Y 和 Group。

我正在寻找每个组的 voronoi 图的基础数据。

通过使用

a=deldir(Test.data$X,Test.data$Y,rw=c(0,1,0,1))

我成功地为整个数据集创建了 voronoi 数据。但是我不知道如何通过数据集中的不同组来迭代这个过程。

有人有什么想法吗?我有使用 ggplot 函数的经验,并且知道在这里我可以简单地添加第三个维度,比如

ggplot(Test.data,aes(x=X,y=Y,colour=Group))

有没有办法让 deldir() 函数产生类似的效果

提前感谢您的帮助。

【问题讨论】:

    标签: r deldir


    【解决方案1】:

    考虑创建组列表,然后过滤数据集。在lapply() 下面创建了一个deldir 对象列表,每个不同的组对应一个:

    groups <- unique(Test.data$groupcol)
    
    deldirList <- lapply(groups, function(g) {
                           temp <- Test.data[Test.data$groupcol==g,]
                           deldir(temp$X, temp$Y, rw=c(0,1,0,1))
                   })
    

    【讨论】:

    • 嗨,Parfait,这个输出工作得很好,但是我现在在将数据写入 csv 时遇到了问题,而我以前没有。 deldirList 写为“LargeList”,当我只处理小数据集时,它只是保存为“List”。为了将列表写入 CSV,我只是使用函数 write.csv(deldirList$delshs,"Output.csv") 这适用于普通列表,但是当使用大列表时,输出只是空白。有没有其他方法可以将大型列表写入 csvs?
    • 如前所述,deldirList 是单个 deldir 对象的列表。所以这是一个嵌套列表。您可以通过在lapply() 循环中添加write.csv() 将单个项目保存到文件中,或者您可以运行deldirAll &lt;- do.call(rbind, deldirList); write.csv(deldirAll, "Output.csv") 将所有列表附加在一起。
    • 进展如何?我没有完全测试的包?在您的帖子中尝试dput(deldirList) 以测试其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 2021-06-25
    • 2018-07-07
    • 2020-04-26
    • 2020-03-24
    • 2018-11-20
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多