Mutate multiple columns in a dataframe

后端 未结 6 950
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-29 06:01

I have a data set that looks like this.

bankname    bankid  year    totass  cash    bond    loans
Bank A      1       1881    244789  7250    20218   29513
B         


        
6条回答
  •  伪装坚强ぢ
    2020-11-29 06:32

    Here is a data.table solution.

    library(data.table)
    setDT(bankdata)
    bankdata[, paste0(names(bankdata)[5:7], "toAsset") := 
               lapply(.SD, function(x) x/totass), .SDcols=5:7]
    bankdata
    #    bankname bankid year   totass   cash   bond loans cashtoAsset bondtoAsset loanstoAsset
    # 1:   Bank A      1 1881   244789   7250  20218 29513  0.02961734 0.082593581   0.12056506
    # 2:   Bank B      2 1881   195755  10243 185151  2800  0.05232561 0.945830247   0.01430359
    # 3:   Bank C      3 1881   107736  13357 177612     0  0.12397899 1.648585431   0.00000000
    # 4:   Bank D      4 1881   170600  35000  20000  5000  0.20515826 0.117233294   0.02930832
    # 5:   Bank E      5 1881 32000000 351266 314012     0  0.01097706 0.009812875   0.00000000
    

提交回复
热议问题