基本R,如何使用函数的结果填充向量

时间:2014-02-27 14:57:45

标签: r vector convex-hull

所以我有一个我执行chull的坐标列表。

X <- matrix(stats::rnorm(100), ncol = 2)
hpts <- chull(X)

chull会返回类似“[1] 1 3 44 16 43 9 31 41”的内容。我想再用另一个向量多个X来返回chull结果集中的X值。因此,例如[-2.1582511,-2.1761699,-0.5796294] * [1,0,1,...] = [-2.1582511,0,-0.5796294 ...]将是结果。我只是不知道如何正确填充第二个向量。

Y <- matrix(0, ncol = 1,nrow=50)   #create a vector with nothing
# how do I fill vector y with a 1 or 0 based on the results from chull what do I do next?
X[,1] * Y  
X[,2] * Y

谢谢,

1 个答案:

答案 0 :(得分:1)

要仅返回X结果集中hpts的值,请使用

> X[hpts]
## [1]  2.1186262  0.5038656 -0.4360200 -0.8511972 -2.6542077 -0.3451074  1.0771153
## [8]  2.2306497

我读它就像“X这样的hpts”,或“X中的hpts的值”

当然,由于我的rnorm

值,这些X值与您的不同。

要获得1和0的向量,表示结果使用

> Y <- ifelse(X[,1] %in% X[hpts], 1, 0)
> Y
## [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0
## [44] 0 1 0 0 1 0 1