Adding new column with conditional values using ifelse

前端 未结 3 1245
刺人心
刺人心 2020-12-10 10:06

I have a data frame with more than 400.000 observations and I\'m trying to add a column to it which its values depend on another column and sometimes multiple ones.

相关标签:
3条回答
  • 2020-12-10 10:16

    Same idea but assign it like this instead. No package needed.

    M$Size <- ifelse(M$Number <= 50, 'Small', ifelse(M$Number <= 70, 'Medium', 'Big'))
    

    Result:

      Letter Number   Size
    1      A      5  Small
    2      B    100    Big
    3      C     60 Medium
    
    0 讨论(0)
  • 2020-12-10 10:25

    Use cut:

    M$Size <- cut(M$Number, breaks = c(-Inf, 50, 70, Inf), 
                            labels = c("small", "medium", "large"))
    #   etter Number   Size
    #1      A      5  small
    #2      B    100  large
    #3      C     60 medium
    
    0 讨论(0)
  • 2020-12-10 10:34

    This will help you out -

    # Creating a data frame 
    
    M <- data.frame(c("A","B","C"),c(5,100,60))
    
    names(M) <- c("Letter","Number")
    
    #adding a column 
    
    
    # if Number <= 50 Size is small, 
    # if Number is between 50 and 70, Size is Medium
    # if Number is Bigger than 70, Size is Big
    
    # M$Size[M$Number <= 50] <- "Small"
    # Edit: No need to subset "Small"
    M$Size <- "Small"
    M$Size[M$Number >50 & M$Number<70] <- "Medium"
    M$Size[M$Number > 70] <- "Big"
    
    #      Letter Number   Size
    # 1      A      5      Small
    # 2      B    100      Big
    # 3      C     60      Medium
    

    See this on R-Fiddle

    0 讨论(0)
提交回复
热议问题