【发布时间】:2015-03-30 02:43:28
【问题描述】:
我经常意识到 3D 图并不是呈现一组数据的最有效方式,但我之前为特定数据集制作的 2D 图似乎表明 3D 图有助于将信息分解为更多用于分析的不同聚类。话虽这么说,我从来没有在 R 中这样做过,并且在使用 plot3d() 制作 3D 散点图之前我在重组我的数据框时遇到了麻烦。
目前,我的数据框有 2 列和几千行信息。第一列是标识符,A、B、C...,第二列是该标识符的一个测量特征。
前
ID Area
A 1.2
A 3.0
A 2.7
B 1.4
B 2.5
C 4.3
C 2.1
C 1.7
我将在 Y 轴上绘制区域。使用 table() 之类的函数,我可以获得 A、B 或 C 出现的次数:(A=3,B=2,C=3),这个值将成为所有 ID 的 x 坐标结果。但我想做的是将这些信息也放入第三列,为给定的 x 坐标分配一个唯一的 z。换句话说,Z 应该表示给定 X 出现了多少次,并且对于特定 X 的每个新实例都会增加 1。最终,原因是特定 X 内的所有对象的面积值 (y) ID 在唯一的 x,z 坐标上相互堆叠。这就是我卡住的地方。 本质上,我希望给定上述输入的最终数据帧输出如下所示:
ID(x) Area(y) Z
3 1.2 1
3 3.0 1
3 2.7 1
2 1.4 1
2 2.5 1
3 4.3 2
3 2.1 2
3 1.7 2
【问题讨论】:
-
Z 列不应该是
[1, 1, 1, 2, 2, 3, 3, 3]吗? -
不,X 表示具有特定 ID 的对象的数量,Z 表示给定 X 出现的次数。对于第一组 3,z=1,因为这是第一组 3。当 x=2 时 Z 再次为 1,因为这是 2 第一次出现。
-
@akrun,照顾它,谢谢提示
-
@MilesW 使用
merge的两个数据集中可能都不存在该列。请检查其中一个数据集中是否存在ID的前导/滞后空间。还有stackoverflow.com/questions/21708282/… -
@MilesW 如果您无法找出问题所在,您可以使用重现错误的小数据集的 dput 输出来更新帖子。 IE。
dput(droplevels(head(yourdata,20)))
标签: r dataframe scatter-plot