【发布时间】:2021-09-10 07:25:48
【问题描述】:
我想创建一个矩阵,其中每行的条目是随机选择的。我希望矩阵具有同一列中的每一行具有不同值的属性。如果同一列中的不同行(例如第 i 行和第 i+1 行)具有相同的值,那么我想用 NA 替换第 i+1 行的条目。基本上,我希望该列的每一行都有不同的条目。例如,第 1 列条目是 (1,2,2,4,1)。然后,我想将此列条目设为 (1,2,NA,4,NA)。这个我试过了
solution = matrix(NA,nrow=5,ncol=5)
for (i in 1:5) {
for (j in 1:5) {
one_entry = sample(1:10, 1)
solution[j,i] = one_entry
if (solution[j+1,i]==solution[j,i]){
#is.na(solution[j+1,i]) <- solution[j+1,I]
solution[j+1,i]<- NA
#solution[solution[j+1,i]] <- NA
} else {
solution[j+1, i] = one_entry
}
}
}
print(solution)
我收到错误“if (solution[j + 1, i] == solution[j, i]) { 中的错误: 需要 TRUE/FALSE 的缺失值”。请帮助解决此问题。
【问题讨论】:
-
j+1最多 5 行,但您只有 4 行。 -
@AndrewGustar 我已经编辑过了,但我认为这里不是这样吗?它在没有 if 条件的情况下工作。我确定问题出在 NA 问题上,但不知道如何解决它