R - How to apply different functions to certain rows in a column

后端 未结 3 639
南笙
南笙 2021-02-06 13:30

I am trying to apply different functions to different rows based on the value of a string in an adjacent column. My dataframe looks like this:

type    size
A            


        
3条回答
  •  粉色の甜心
    2021-02-06 14:09

    This might be a might more R-ish (and I called my dataframe 'dat' instead of 'df' since df is a commonly used function.

    > facs <- c(3,1,2)
    > dat$size2= dat$size* facs[ match( dat$type, c("A","B","C") ) ]
    > dat
      type size size2
    1    A    1     3
    2    B    3     3
    3    A    4    12
    4    C    2     4
    5    C    5    10
    6    A    4    12
    7    B   32    32
    8    C    3     6
    

    The match function is used to construct indexes to supply to the extract function [.

提交回复
热议问题