How do I sweep specific columns with dplyr?

后端 未结 2 457
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-15 23:12

An incredibly common operation for my type of data is applying a normalisation factor to all columns. This can be done efficiently using sweep or scale

2条回答
  •  旧时难觅i
    2020-12-15 23:55

    From dplyr 1.0.0, you can do:

    data %>%
     rowwise() %>%
     mutate(across(A:D)/factors)
    
         ID Type      A       B      C      D
               
    1     1 X         3   0.833   3.75   5.33
    2     2 X       174 107.     82.5   76   
    3     3 X         6   1.67    2.5    5.33
    4     4 Y      1377 849.    312.   335.  
    5     5 Y       537 353.    161.   165.  
    6     6 Y       173 116.     50     50.7 
    

提交回复
热议问题