如何向空向量中追加符合条件的值?
问题原因及解决方法
你的代码问题在于没有将ifelse的返回值赋值给dif,同时append函数不会直接修改原向量——它会生成一个新向量,必须把这个新向量重新赋值给dif才能更新变量。
修正后的代码
方式一:用ifelse赋值
dif <- c() # 将ifelse的返回值赋值给dif dif <- ifelse(10 > 5, append(dif, "2"), append(dif, "error") ) dif
方式二:用普通if/else(更直观)
因为这里是单条件判断,用常规的if/else可读性更强:
dif <- c() if (10 > 5) { dif <- append(dif, "2") } else { dif <- append(dif, "error") } dif
原理说明
R是函数式编程语言,大部分函数不会直接修改输入的对象,而是返回一个新对象。你原来的代码里,append(dif, "2")确实生成了包含"2"的新向量,但这个向量没有被保存,原dif变量依然是初始的空向量,所以最后输出dif还是NULL。
内容的提问来源于stack exchange,提问作者Lara
相关产品推荐
相关产品推荐

