So this is the function i am trying to build. It should calculate the percentage of a col of one Df on another based on same IDs.
# With dummy data
df1 = data.frame(State = c('Arizona AZ','Georgia GG', 'Newyork NY','Indiana IN','Florida FL'), Score=c(62,47,55,74,31), id=c(1,2,3,4,5))
df1
> df1
State Score id
1 Arizona AZ 62 1
2 Georgia GG 47 2
3 Newyork NY 55 3
4 Indiana IN 74 4
5 Florida FL 31 5
df2 = data.frame(State = c('Arizona AZ','Georgia GG', 'Newyork NY','Indiana IN'), Score2=c(10,7,5,4), id=c(1,2,3,4))
df2
> df2
State Score2 id
1 Arizona AZ 10 1
2 Georgia GG 7 2
3 Newyork NY 5 3
4 Indiana IN 4 4
CalcPerc <- function(x, ins) {
# 1) Subset + cbind
y <- subset(ins, id %in% x$id)
y <- cbind(y, x$Score)
# Percentage
x1 <- 100*(y$Score2/y$Score)
print(x1)
}
CalcPerc(x= df2, ins = df1)
[1] 4
numeric(0)
Why am i getting numeric(0) ?
How can i fix my function?
It works just fine if i am doing it outside a function.
Thanks for your help!