首页 > 解决方案 > 如何使用 R 中的数据框元素创建随机游走?

问题描述

晚上好,

我有一个包含 100 行的数据框,列标题是 ID、x 坐标和 y 坐标:

ID X
1 0.1 0.1
2 0.2 0.2

等等。我现在想模拟这 100 个点之间的随机游走,但不知道如何调用一行。我想到了类似于以下内容: dataframe[ID,]=dataframe[ID+1,]+sample(step,1)

但是,这会引发错误“未使用的参数(alist(id = ))”

有人知道如何解决这个问题吗?

提前谢谢了!

标签: rrandom-walk

解决方案


这将以随机顺序返回行:

set.seed(123)  # pick an arbitrary number to make reproducible
dfrm[ sample(100), ]

如果您只想 x 和 y 值而不是 ID,它将是:

set.seed(567)
dfrm[ sample(100), 2:3 ]

这是一个结果图:

df_start <- data.frame(ID=1:100, X=runif(100), Y=runif(100))
dfrm <- df_start[ sample(100) , ]
plot( x=0:1,y=0:1, plot=FALSE) # just setting range
arrows(x0=head(dfrm$X, -1), x1=tail(dfrm$X,-1), 
       y0=head(dfrm$Y, -1), y1=tail(dfrm$Y,-1) )

在此处输入图像描述

您说您想要“在这些点之间随机游走”。创建更马尔可夫随机游走的另一种方法是将值用作从起点开始的增量,并将值以 0 为中心,可能跨越 [-1, 1]。从 (0,0) 开始后,您将改为使用cumsum它们的值


推荐阅读