我有我想discretise并创建一个三维表面图的大型数据集:
rowColFoVCell wpbCount Feret
1 001001001001 1 0.58
2 001001001001 1 1.30
3 001001001001 1 0.58
4 001001001001 1 0.23
5 001001001001 2 0.23
6 001001001001 2 0.58
目前有695302行中的这组数据。 我想discretise基于第二列第三个“弗雷德”列,所以每个“wpbCount”斌的“弗雷德”列。
我认为解决方案将涉及使用切,但我不知道如何去这一点。 我想用一个数据帧像这样结束了:
wpbCount Feret Count
1 1 [0.0,0.2] 3
2 1 [0.2,0.4] 5
3 1 [0.4,0.6] 6
4 1 [0.8,0.8] 9
5 2 [0.0,0.2] 6
6 2 [0.4,0.6] 23
这是回答第一部分:
创建一些数据
DF <- data.frame(wpbCount = sample(1:1000, 1000),
Feret = sample(seq(0, 1, 0.001), 1000))
1)使用离散化砍右= FALSE这样的间隔是[)我通常觉得这比默认更多有用
DF$cut_it <- cut(DF$Feret, right = FALSE,
breaks = c(0, 0.2, 0.4, 0.6, 0.8, 1))
2)聚合
表< - data.frame(表(DT $ cut_it))
编辑另一个尝试
library(data.table)
DT <- data.table(DF)
DT <- DT[, list(wpbCount = length(wpbCount),
Feret = length(Feret)
), by=cut_it]
也许你只是想和离散聚合不。 尝试这个:
DF2 <- data.frame(wpbCount = sample(1:3, 1000, replace=T),
Feret = sample(seq(0, 1, 0.001), 1000))
DF2$Feret2 <- cut(DF$Feret, right = FALSE,
breaks = c(0, 0.2, 0.4, 0.6, 0.8, 1.1))
DF2 <- DF2[, c(1, 3)]
非常感谢您的帮助我用下面的函数R:
X $仓< - 削(X $费雷特,右= FALSE,断裂= SEQ(0,MAX(wpbFeatures $费雷特),由= 0.1))
Ý<-aggregate(X $仓,由= X [C( 'wpbCount', '仓')],长度)
从你的建议,我已经能够得到我所需要的数据帧:
wpbCount | 斌| X
1 [0.2,0.3)72
2 [0.2,0.3)142
3 [0.2,0.3)224
4 [0.2,0.3)299
5 [0.2,0.3)421
6 [0.2,0.3)479
现在我需要在3D绘制这一点,我不知道如何与非数值列即斌列是因素这么做。
有谁知道我可以暗算对方这三根柱子?
看看这个链接 。 有一些3D绘图。 然而,3D绘图并不analize数据最伟大的工具。 如果你坚持用3D的方式,尝试stat_contout()从GGPLOT2包。
然而,可能会更好apprach是做在2D的几个地块,或使用facet_grid()。 看看GGPLOT2 当前文档也。
试试这个基础上你最后的答案(未测试):
ggplot(DF, aes(wpbCount , x)) +
geon_point() +
facet_grid(. ~ bin)
我们的想法是使用因子变量(在这种情况下,bin)添加到端面的情节。