当我在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和编码一般很新吗?有人可以向我解释为什么它不会逐个打印掉这些字母吗?
你的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)