【发布时间】:2016-06-23 16:47:11
【问题描述】:
我是 R 的初学者,正在尝试编写 R 函数。我写的函数是这样的
male <- c(1:10)
female <- c(11:20)
msum <- function(h,j) {
for(i in 1:length(h)){
e <- c()
e[i] = h[i] + j[i]
i = i+1
}
e
}
现在,当我通过 p <- msum(male, female) 调用该函数时,我会寻找一个长度为 10 的向量的输出,结果是男性和女性向量的总和,但我得到的是一个长度为 10 的向量,NA 作为前 9 个位置的值和 30 作为向量的最后一个值。我哪里错了?
【问题讨论】:
-
这是一个范围界定问题。您在 for 循环内定义了
e,但在循环外使用它 -
你也不需要增加
i,所以去掉i = i+1这一行 -
另外,将函数命名为与基本 R 函数相同的名称可能会非常令人困惑(
sum已经存在)。 -
mysum <- function(h, j) h + j怎么样
标签: r