R:如何在向量上使用类似“ if”的函数,但不使用“ ifelse”,因为如果没有,它什么也不做

R.b*_*ary 5 if-statement r vectorization conditional-statements

我尝试根据第三个变量的条件一次用另一个变量的值覆盖多个变量(一种日历中的月份)。如果条件为假,则什么也不会发生。

我认为If函数会有所帮助,因为可以省略else,但不能,它不适用于矢量。

    DF1[,3:4] <- if (DF1$v7==5) {DFDF1$v5}  
the condition has length > 1 and only the first element will be used
Run Code Online (Sandbox Code Playgroud)

另一方面,拟合向量是ifelse,但这告诉我

    DF1[,3:4] <- ifelse (DF1$v7==5, DF1$v5, )
"argument "no" is missing, with no default", 
Run Code Online (Sandbox Code Playgroud)

那么我应该怎么做才能实现自己的目标呢?

感谢您的任何建议,对我的初学者表示感谢!

PS:变量只是示例。

编辑:我正在寻找一种方法,在这里我可以解决应由DF1 [,3:4]中的列号替换的变量,因为否则我将不得不键入多达12个不同的变量名(在我的原始DF中)。

Hug*_*ugh 4

一栏接着一栏。对于else条件,直接使用原来的值即可

for (i in 3:4){
 DF[,i] <- ifelse(DF$v7 == 5, DF1$v5, DF[,i])
}
Run Code Online (Sandbox Code Playgroud)