代码之家  ›  专栏  ›  技术社区  ›  Jake

在R中用不同的值从现有列创建新列

  •  0
  • Jake  · 技术社区  · 6 年前

    我有一个6月,5月,7月的数据框架,有不同的值。我正在尝试为每个月创建新的列,其中包含新的值。如果该值大于或等于100,我希望将其更改为100,并在小于100时保留该值。这里是DF:

    June <- c(100,50,200)
    May <- c(250, 100, 20)
    July <- c(20, 300, 20)
    
    df <- data.frame(June, May, July)
    

    我的目标是让测向仪看起来像这样:

    June <- c(100,50,200)
    May <- c(250, 100, 20)
    July <- c(20, 300, 20)
    June_new <- c(100,50,100)
    May_new <- c(100,100,20)
    July_new <- c(20,100,20)
    
    df2 <- data.frame(June, May, July,June_new, May_new, July_new)
    

    谢谢你

    1 回复  |  直到 6 年前
        1
  •  2
  •   RavinderSingh13 Nikita Bakshi    6 年前

    这个呢,用简单的 ifelse 检查条件并将列添加到df本身。

    df$new_June <- ifelse(df$June>=100, 100, df$June)
    df$new_May <- ifelse(df$May>=100, 100, df$May)
    df$new_July <- ifelse(df$July>=100, 100, df$July)
    

    在df值之前:

    > df
      June May July
    1  100 250   20
    2   50 100  300
    3  200  20   20
    

    运行命令df value之后:

    df$new_June <- ifelse(df$June>=100, 100, df$June)
    df$new_May <- ifelse(df$May>=100, 100, df$May)
    df$new_July <- ifelse(df$July>=100, 100, df$July)
    df
    
      June May July new_June new_May new_July
    1  100 250   20      100     100       20
    2   50 100  300       50     100      100
    3  200  20   20      100      20       20
    >