【发布时间】:2015-05-17 15:28:31
【问题描述】:
我有一个 300x300 元素的数据框。它们中的每一个都是 -1 或 +1:
[,1] [,2] [,3]
[1,] 1 -1 -1
[2,] 1 1 1
[3,] -1 -1 1
[4,] 1 1 -1
我想要的是遍历我的数据框,并将每个值与每个相邻值相乘。
即:
对于原始数据框中的元素 [1,1],我想要 [1,1]、[1,2] 和 [2,1] 的乘积
对于原始数据框中的元素 [2,2],我想要 [2,2]、[1,2]、[2,1]、[2,3] 和 [3,2] 的乘积。
我尝试创建 4 个新数据帧,每个数据帧分别向右、向左、向上和向下移动 1 个元素:
x_up <- shift(x, 1, dir='up')
x_up <- as.array(x_up)
dim(x_up) <- dims
x_down <- shift(x, 1, dir='down')
x_down <- as.array(x_down)
dim(x_down) <- dims
x_left <- shift(x, 1, dir='left')
x_left <- as.array(x_left)
dim(x_left) <- dims
x_right <- shift(x, 1, dir='right')
x_right <- as.array(x_right)
dim(x_right) <- dims
其中 x 是我的原始数据框。
我可以看到,当我使用这种方法时,新的数据框并没有正确地移位;其中更多是相同的。我用相同的()检查了这个。
还有其他方法可以解决我的问题吗?
编辑:
shift() 属于 'binhf' 库
【问题讨论】:
标签: r