Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 用于循环和';其中';命令_R_For Loop - Fatal编程技术网

R 用于循环和';其中';命令

R 用于循环和';其中';命令,r,for-loop,R,For Loop,因此,我目前正在尝试获得节点之间的随机初始路径。我试过下面的代码,但有时它会“跳过”一个节点,即有时同一个节点会被访问两次,而不是遍历每一个节点。但由于我已经将已访问节点的“列”定义为所有0,所以我不明白为什么在使用which(>0)命令时会发生这种情况。有什么建议吗 A<-matrix(sample(1:15,25,replace=TRUE), ncol=5) n=nrow(A) b=c() a=c(1:nrow(A)) b[1]=sample(a,1) for(i in 2:n

因此,我目前正在尝试获得节点之间的随机初始路径。我试过下面的代码,但有时它会“跳过”一个节点,即有时同一个节点会被访问两次,而不是遍历每一个节点。但由于我已经将已访问节点的“列”定义为所有0,所以我不明白为什么在使用which(>0)命令时会发生这种情况。有什么建议吗

A<-matrix(sample(1:15,25,replace=TRUE), ncol=5) 

n=nrow(A)

b=c()
a=c(1:nrow(A))
b[1]=sample(a,1)

for(i in 2:n){
A[,b[i-1]]<-rep(0,n)
d=which(A[b[i-1],]>0)
b[i]=sample(d,1)
}

print(b)

A问题在于,当向样本传递长度为1的向量时,样本的行为不同。观察

set.seed(14)
x<-c(5,3)
sample(x, 1)
# [1] 5
x<-5
sample(x, 1)
# [1] 4

问题是,当您向样本传递长度为1的向量时,样本的行为会有所不同。观察

set.seed(14)
x<-c(5,3)
sample(x, 1)
# [1] 5
x<-5
sample(x, 1)
# [1] 4
为什么不直接做
sample(seq_len(ncol(A))
,这样你就可以在五列之间找到一条永远不会重复一列的路径?如果您确实想要重复,只需尝试
sample(seq_len(ncol(A)),replace=TRUE)
为什么不直接执行
sample(seq_len(ncol(A))
,然后您将在五个列之间获得一条永远不会重复列的路径?如果您确实想要重复,只需尝试
sample(seq_len(ncol(A)),replace=TRUE)
sample(seq_len(nrow(A))