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
循环作为最后的手段。
我正在尝试在数据框中添加一列,如果满足特定行的条件,新列中的新元素的值为“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
循环作为最后的手段。