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)
}
当我在 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)
}