【发布时间】:2021-04-29 18:31:09
【问题描述】:
我正在尝试使用基于不同矩阵的特定值填充矩阵。
我创建了一个空矩阵:
n <- 64 #length of matrix
vector_walk<- matrix(0, ncol = 1, nrow = n)
然后我从这个分布中填充了那个矩阵
n <- 100000 #How many observations in the distribution
mu <- 180 #Mean vector for distribution
kappa <- 1.5 #How wide the distribution is
mu <- circular(mu, units = c("degrees"),
modulo = c("2pi"),
template = ("geographics"))
Dist <- rvonmises(n, mu, kappa, control.circular=list(units="degrees"))
填充矩阵
for (i in 1:n){
vector[i] = sample(Dist, 1)
}
现在这是我卡住的地方。我想用 2 列填充一个新矩阵“grid_walk”,并有条件地用基于“vector_walk”矩阵的值填充它。每当“向量矩阵的值大于 0 且小于 23 以及下面列出的其他一些值时,我想在第一列中添加 0,在第二列中添加 1。我正在尝试使用 if 语句进行此 for 循环
for (j in 1:2){
for(i in 1:n){
if(vector_walk[i] > 0 & vector_walk[i] < 23) grid_walk[i,j] <- c(0,1)
if(vector_walk[i] > 23 & vector_walk[i] < 68) grid_walk[i,j] <- c(1,1)
if(vector_walk[i] > 68 & vector_walk[i] < 113) grid_walk[i,j] <- c(1,0)
if(vector_walk[i] > 113 & vector_walk[i] < 158) grid_walk[i,j] <- c(1,-1)
if(vector_walk[i] > 158 & vector_walk[i] < 203) grid_walk[i,j] <- c(0,-1)
if(vector_walk[i] > 203 & vector_walk[i] < 248) grid_walk[i,j] <- c(-1,-1)
if(vector_walk[i] > 248 & vector_walk[i] < 293) grid_walk[i,j] <- c(-1,0)
if(vector_walk[i] > 293 & vector_walk[i] < 338) grid_walk[i,j] <- c(-1,1)
if(vector_walk[i] > 338 & vector_walk[i] < 361) grid_walk[i,j] <- c(0,1)
}
}
任何帮助将不胜感激,因为我从未在 R 中使用过 if 或 for 语句
【问题讨论】:
-
你在这里使用什么包?我假设
rvonmises为 Rfast,但我不认识您使用的circular函数。 -
我正在使用“循环”和“循环状态”包