這是我的資料:
Year1 <- c(2015,2013,2012,2018)
Year2 <- c(2017,2015,2014,2020)
my_data <- data.frame(Year1, Year2)
我需要一個 if 陳述句,當第 1 年等于 2015 年或 2016 年且第 2 年大于 2016 年時回傳 1。目前,我的代碼如下所示:
my_data <- my_data %>%
mutate(Y_2016=ifelse(my_data$Year1==2015|2016 & my_data$Year1>2016,1,0))
但這不起作用,似乎只檢查第 2 年大于 2016 年的條件,因為即使在第 1 年是 2018 年和第 2 年是 2020 年的最后一行,它也會回傳 1。
感謝您的幫助!
uj5u.com熱心網友回復:
而不是
my_data$Year1==2015|2016,使用%in%likemy_data$Year1 %in% c(2015,2016)。輸入錯誤
my_data$Year1>2016當您使用時,
dplyr您不需要用$like指定每個變數my_data$...
my_data%>%
mutate(Y_2016=ifelse(Year1 %in% c(2015,2016) & Year2>2016,1,0))
Year1 Year2 Y_2016
1 2015 2017 1
2 2013 2015 0
3 2012 2014 0
4 2018 2020 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377754.html
