R中的IF语句。如果满足条件,则在新列中添加新元素

IF statement in R. Add new elements in new column if conditions met

我正在尝试在数据框中添加一列,如果满足特定行的条件,新列中的新元素的值为“1”。

为了检查条件,我正在遍历另一个参考数据框。

county_list = (df$county_name[df$wolves_present_in_county==1 & df$year==2015])

for (i in df$county_name) {
  for (j in county_list) {
    if (df$county_name[i]==county_list[j])
    {
      df$wolvein2015 = 1
      break
    }
  }
}

Error in Output Dataset

这里有一个选项dplyr

library(dplyr)
df %>%
     mutate(wolvein2015 = +((year == 2015 & !is.na(year)) &  
         as.logical(wolves_present_in_county) & !is.na(wolves_present_in_county)))

我认为你可以在 base R 中做你想做的事。这是一个使用 mtcars 的例子:

cars <- mtcars
cars$new <- ifelse(cars$cyl == 4 & cars$mpg > 30, 1, 0)

根据其他 2 个变量的条件,新列添加了 0/1。

顺便说一句,因为 R 是一个矢量化范例,所以你应该只使用 for 循环作为最后的手段。