首页 > 解决方案 > 为什么循环不起作用?if & C 函数

问题描述

data_base<- c("www.url1.com","www.url2.com","www.url3.com")
data1<-c("www.url4.com","www.url5.com","www.url2.com")

lapply(data1,function(x){if(is.element(x, data_base)==F){
                               data_base<-c(data_base,x)}else{NULL}})

我想测试“data1”向量中的每个元素,如果它与“data_base”中已经存在的任何元素都不匹配,请将其添加到“data_base”。即使条件为 true,它也不会添加。

标签: r

解决方案


最好的方法是:

data_base <- union( data_base , data1 )

所以

data_base<- c("www.url1.com","www.url2.com","www.url3.com")
data1<-c("www.url4.com","www.url5.com","www.url2.com")

data_base <- union(data_base, data1)

> data_base
[1] "www.url1.com" "www.url2.com" "www.url3.com" "www.url4.com" "www.url5.com"

但是要直接回答您的问题,您只是data_baselapply. 您需要返回它或使用<<-(但不要这样做)分配它以获得您期望的行为。


推荐阅读