当我在 R 中编写以下简单的 for 循环时:

newlist <- c("A", "B", "C")
for (i in newlist) {
  print(newlist[i])
}

我得到以下输出:
[1] NA
[1] NA
[1] NA

我对 R 和一般编码很陌生?有人可以向我解释为什么它不会一个一个地打印出字母吗?

最佳答案

您的 for 循环正在迭代 newlist 的值,而不是它们的索引。也就是说,您将 i 设置为 "A" ,然后是 "B" 等,然后尝试按值对 newlist 进行子集化,这将返回错误,因为您只能使用索引或名称进行子集化。你可能想要的是:

for (i in 1:length(newlist)){
    print (newlist[i]))
}

或者,更简单地说,
for (i in newlist){
    print(i)
}

关于r - R 中的 For 循环在打印时返回 NA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32829922/

10-12 20:40