【问题标题】:To show Dec, Jan, Feb as low flow season将 12 月、1 月、2 月显示为低流量季节
【发布时间】:2018-03-19 06:23:14
【问题描述】:

我有以下数据框:

head(df)
  Sl.no       Date   Year  Month Season  concentration
1     1 1993-12-01  1993   Dec Winter          20.0
2     2 1994-01-01  1994   Jan Winter          21.0
3     3 1994-02-01  1994   Feb Winter          20.0
4     4 1994-03-01  1994   Mar Spring          21.5
5     5 1994-04-01  1994   Apr Spring          29.0
6     6 1994-05-01  1994   May Spring          40.0

我想在数据框中添加一列,以便所有 12 月、1 月、2 月、3 月、4 月显示“低流量”,其余月份显示“高流量”。

我尝试了以下方法:

df$hflf <- if (df$Month==c("Dec", "Jan", "Feb", "Mar", "Apr"))
{"low flow"} else {"high flow"}.

但它似乎不起作用。

我怎样才能做到这一点。您的帮助将不胜感激

【问题讨论】:

  • ifelse%in% 一起使用,即with(df, ifelse(Month %in% c("Dec", .."Apr"), "low flow", "high flow"))
  • 谢谢@akrun。我不知道 ifelse()。它有效。

标签: r dataframe lubridate


【解决方案1】:

正如@akrun 在评论中所建议的,您可以这样做:

lowflow <- c("Dec", "Jan", "Feb", "Mar", "Apr")
df$hflf <- ifelse(df$Year %in% lowflow, "low flow", "high flow")

使用dplyr 包,您还可以这样做:

df <- df %>% mutate(hflf2 = case_when(Year %in% lowflow~"low flow", TRUE~"high flow"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多