[R] Calculate correctly, but gives an error message
TEMPL Matthias
Matthias.Templ at statistik.gv.at
Tue Jun 29 10:27:24 CEST 2004
Hi!
I will calculate sum´s in the following way:
E.g.:
a <- rpois(100,20)
b <- rpois(100,5)
x <- data.frame(cbind(a,b))
# the sum´s should be calculated based on a.
attach(x)
sort.nace <- unique(sort(x[,1]))
sum1 <- matrix(ncol=1, nrow=length(sort.nace))
# I calculate the sum of all values of b, which have the same category in a. Eg.:
sum1[1,] <- sum(subset(x, a==sort.nace[1], select=b), na.rm=TRUE)
# or:
sum1[5,] <- sum(subset(x, a==sort.nace[5], select=b), na.rm=TRUE)
# all is ok.
# but when I do it in a loop, I get an error message.
sum1 <- matrix(ncol=1, nrow=length(sort.nace))
for(i in 1:length(nace)){
sum1[i,] <- sum(subset(x, a==sort.nace[i], select=b), na.rm=TRUE)
}
#Error in Summary.data.frame(..., na.rm = na.rm) :
# only defined on a data frame with all numeric or complex variables
# but sum1 was correct calculated(!):
# sum1
# [,1]
# [1,] 3
# [2,] 4
# [3,] 8
# [4,] 7
# [5,] 41
# [6,] 57
# [7,] 38
# [8,] 15
# [9,] 44
# [10,] 72
# [11,] 57
# [12,] 27
# [13,] 12
# [14,] 24
# [15,] 29
# [16,] 16
# [17,] 19
# [18,] 3
# [19,] 4
# [20,] 8
# [21,] 6
The variables of x are of class numeric.
My function, which should calculate these sum´s, does not work, because of this error.
Can anybody please tell me, what I´m doing wrong?
(I think it would be better to write a sapply instead of the loop, but I have two functions (sum and subset) and it is very hard for me to use the sapply here correctly)
Thanks,
Matthias
More information about the R-help
mailing list