如何定义一个内部有foor循环,内部有conditional if语句的函数?
我试图在R studio中定义一个带有for循环和条件的函数。为此,我从下面代码中的一个简单案例开始。然而,它不起作用如何定义一个内部有foor循环,内部有conditional if语句的函数?,r,R,我试图在R studio中定义一个带有for循环和条件的函数。为此,我从下面代码中的一个简单案例开始。然而,它不起作用 ma<-rep(0,20) l<-function(x){for (i in 1:20){ if (i%%2 ==1) {ma[i]=i+x} else {ma[i]=0}} } ma我们可以将函数更改为 l <- function(x, ma) { for(i in seq_along(ma)) {
ma<-rep(0,20)
l<-function(x){for (i in 1:20){
if (i%%2 ==1) {ma[i]=i+x}
else {ma[i]=0}}
}
ma我们可以将函数更改为
l <- function(x, ma) {
for(i in seq_along(ma)) {
if(i %% 2 == 1) {
ma[i] <- i + x
} else {
ma[i] <- 0
}
}
return(ma)
}
我们可以将函数更改为
l <- function(x, ma) {
for(i in seq_along(ma)) {
if(i %% 2 == 1) {
ma[i] <- i + x
} else {
ma[i] <- 0
}
}
return(ma)
}
由于ma
不是传递给函数l
的参数,您可以尝试由于ma
不是传递给函数l
的参数,您可以尝试
ifelse(seq_along(ma) %% 2 == 1, seq_along(ma) + 5, 0)
#[1] 6 0 8 0 10 0 12 0 14 0 16 0 18 0 20 0 22 0 24 0
l <- function(x) {
for (i in 1:20) {
if (i %% 2 == 1) {
ma[i] <<- i + x
}
else {
ma[i] <<- 0
}
}
}
> l(5)
> ma
[1] 6 0 8 0 10 0 12 0 14 0 16 0 18 0 20 0 22 0 24 0