对于R中的循环在打印中返回NA

时间:2015-09-28 18:56:05

标签: r for-loop na

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

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

我得到以下输出:

[1] NA
[1] NA
[1] NA

我对R和编码一般都是新手吗?有人可以向我解释为什么它不会逐个打印这些字母吗?

1 个答案:

答案 0 :(得分:7)

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

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

或者更简单地说,

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