Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get sum by each factor level?

Tags:

r

I have filtered data and one of the columns has 5 factor levels and I want to get sum for each of the factor level.

I am using the below code

levels(df_Temp$ATYPE)
[1] "a"  "b" "c"  "d"   "Unknown" 

I am using the below code

cast(df_Temp,ATYPE~AFTER_ADM, sum, value = "CHRGES") 

but the output I am getting is as below

  ATYPE 0          1
1 a     0 2368968.39
2 b     0 3206567.47
3 c     0   19551.19
4 e     0 2528688.12

I want to all the factor levels and sum as "0" for those missing data of factors level.

So the desired output is

  ATYPE 0          1
1 a     0 2368968.39
2 b     0 3206567.47
3 c     0   19551.19
4 d     0          0
5 e     0 2528688.12
like image 826
Rags Avatar asked Oct 26 '25 09:10

Rags


1 Answers

Using xtabs from base R

xtabs(CHRGES ~ ATYPE + AFTER_ADM, subset(df_Temp, ATYPE != "e"))
#   AFTER_ADM
#ATYPE           0           1
#    a  0.00000000 -5.92270971
#    b -1.68910431  0.05222349
#    c -0.26869311  0.16922669
#    d  1.44764443 -1.59011411
#    e  0.00000000  0.00000000

data

set.seed(24)
df_Temp <- data.frame(ATYPE = sample(letters[1:5], 20, replace = TRUE),
    AFTER_ADM = sample(0:1, 20, replace = TRUE), CHRGES = rnorm(20))
like image 123
akrun Avatar answered Oct 28 '25 00:10

akrun



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!