【发布时间】:2018-07-24 08:19:49
【问题描述】:
我正在尝试根据 X-Y 平面上点的分布从 X-Y-Z 空间中的一组点 df_map 中采样行。分布的均值和标准差在另一个数据集 df_pts 中。
我的数据是这样的
> df_map
X Y Z
A 6 0 103
B -4 2 102
C -2 15 112
D 13 6 105
E 1 -3 117
F 5 16 105
G 10 5 103
H 14 -7 119
I 8 14 107
J -8 -4 100
> df_pts
x y accuracy
a 5 18 -0.8464018
b 3 2 0.5695678
c -18 14 -0.4711559
d 11 13 -0.7306417
e -3 -10 2.1887011
f -9 -11 2.1523923
g 5 1 -0.9612284
h 12 -19 -0.4750582
i -16 20 -1.4554292
j 0 -8 3.4028887
我想遍历 df_pts 中的行并根据与(df_pts[i, x], df_pts[i, y]) 的距离的高斯分布从 df_map 中选择一行,其中 2d 标准偏差为df_pts[i, accuracy]。换句话说,在每个i = 1:10,我想根据平均值df_pts[i, x]^2 + df_pts[i, y]^2和2d sddf_pts[i, accuracy]的正态分布从df_map中抽取一个样本。
如果您有任何关于高效且复杂的方法的建议,我将不胜感激。我对 R 比较陌生,并且来自 C 背景,我编写这样的任务的方式涉及太多的基本循环和使用基本操作的每一步计算,这使得代码非常慢。
如果问题太琐碎或结构不合理,我提前道歉。
【问题讨论】: