如何根据其他一些变量添加新列

How to add a new column based on a few other variables

我是 R 的新手,无法使用现有变量的条件创建新变量。我有一个包含几列的数据集:名称、月份、性别二进制和价格。我想创建一个新变量 Price2,它将:

  1. 如果[月份是 6-9(6-9),性别是 0]
  2. ,则价格为 20
  3. 如果[月份为 6-9(6-9) 且性别为 1],则价格为 30
  4. 如果[月份是 1-5(Jan-May) 或月份是 10-12(Oct-Dec)]
  5. ,则价格为 0

--

structure(list(Name = c("ADI", "SLI", "SKL", "SNK", "SIIEL", "DJD"), Mon = c(1, 2, 3, 4, 5, 6), Gender = c(1, NA, NA, NA, 1, NA), Price = c(23, 34, 32, 64, 23, 34)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))

使用 dplyr 包中的 case_when()

mydf$newprice <- dplyr::case_when(
  mydf$Mon >= 6 & mydf$Mon <= 9 & mydf$Gender == 0 ~ 20,
  mydf$Mon >= 6 & mydf$Mon <= 9 & mydf$Gender == 1 ~ 30,
  mydf$Mon < 6 | mydf$Mon > 9 ~ 0)