如何在R语言的for循环中正确使用索引值?
问题解决方法
错误原因分析
第一个报错Error in i(i + 1) : could not find function "i",是因为R语言中乘法必须显式使用乘号*。你写的i(i+1)会被R解释为「调用名为i的函数,传入参数i+1」,但i只是循环变量,不是函数,所以触发错误。你尝试用[i]的操作属于误用,这里根本不需要方括号,是无效修改。
正确代码实现
方法1:修正循环版本
补上乘法的乘号即可:
Multiplier <- numeric(200) for (i in 1:200) Multiplier[i] <- 1/sqrt(i * (i + 1))
方法2:推荐用向量化操作(更高效简洁)
R是向量优先的语言,向量化操作比循环更高效,代码也更短:
n <- 1:200 Multiplier <- 1/sqrt(n * (n + 1))
内容的提问来源于stack exchange,提问作者Jeffrey Grueneberg
相关产品推荐
相关产品推荐

