在R中使用ifelse条件时,先前的标记无效

在R中使用ifelse条件时,先前的标记无效,r,if-statement,data.table,R,If Statement,Data.table,这是我的数据- library(data.table) basefile2 = data.table(States = c("California","California", "California", "Texas","Texas","Texas", "Ohio", "Ohio", "Ohio"), Cities = c("LA", "California City", "San Fran", "Houston", "Dallas"

这是我的数据-

library(data.table)
    basefile2 = data.table(States = c("California","California", "California", "Texas","Texas","Texas", "Ohio", "Ohio", "Ohio"),
                          Cities = c("LA", "California City", "San Fran", "Houston", "Dallas", "Austin", "Columbus", "Cleaveland", "Wooster"))
这是我的密码-

Market = function(state, city){

  if (missing(state))  stop("Enter State",
                               call. = FALSE)


  if (missing(city))  stop("Enter City(ies)",
                            call. = FALSE)


  basefile2 <<- basefile2[, "Consideration" := ifelse(States == state & Cities %in% city, "Y", 
                                                    ifelse("Consideration" %in% colnames(basefile) & "Consideration" == "Y", "Y", "N"))]


}


Market(state = "California",
       city = c("LA", "California City"))

Market(state = "Texas",
       city = c("Dallas", "Austin"))
其中,我需要的输出是在加利福尼亚市、洛杉矶、奥斯汀和达拉斯的考虑栏中必须有“Y”

一个选项是在开始时将“注意事项”列添加到data.table,然后将其用作函数内更新的条件,以便不替换以前的更新

library(data.table)
basefile2 <- data.table(...) # as you had

basefile2[, Consideration := "N"] # initialize the column 

@akrun,因为我希望basefile2是一个全局数据表&也可以在函数外部访问它,所以我分配了
library(data.table)
basefile2 <- data.table(...) # as you had

basefile2[, Consideration := "N"] # initialize the column 
Market <- function(state, city){

 basefile2 <<- basefile2[Consideration=="N",    # Only update if this is "N"
                 "Consideration" := ifelse(States == state & Cities %in% city, "Y", "N")]
}
Market <- function(state, city){

    basefile2 <<- basefile2[States == state & Cities %in% city, Consideration := "Y"]
}
Market(state = "California", city = c("LA", "California City"))
Market(state = "Texas", city = c("Dallas", "Austin"))

basefile2
       States          Cities Consideration
1: California              LA             Y
2: California California City             Y
3: California        San Fran             N
4:      Texas         Houston             N
5:      Texas          Dallas             Y
6:      Texas          Austin             Y
7:       Ohio        Columbus             N
8:       Ohio      Cleaveland             N
9:       Ohio         Wooster             N