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

cli*_*ngs 3 for-loop r na

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

newlist <- c("A", "B", "C")
for (i in newlist) {
  print(newlist[i]) 
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

[1] NA
[1] NA
[1] NA
Run Code Online (Sandbox Code Playgroud)

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

C_Z*_*_Z_ 7

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

for (i in 1:length(newlist)){
    print (newlist[i]))
}
Run Code Online (Sandbox Code Playgroud)

或者,更简单地说,

for (i in newlist){
    print(i)
}
Run Code Online (Sandbox Code Playgroud)