For Loop in R Returns NA in Printing

For Loop in R Returns NA in Printing

当我在 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 进行子集化,这 returns 是一个错误,因为您只能使用索引或名称进行子集化。您可能想要的是:

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

或者,更简单地说,

for (i in newlist){
    print(i)
}