Я не понимаю, как числа, которые вы показываете в своем вопросе, могут быть целыми числами:
> x <- c(52524847.0, 52524847.0, 52524847.0, 52524847.0, 52524847.0, 52524847.0,
+ 52524847.0, 52524847.0, 52524847.0, 52524847.0, 70026530.6, 70026530.6,
+ 70026530.6, 70026530.6, 70026530.6, 70026530.6, 70026530.6, 70026530.6,
+ 70026530.6, 70026530.6, 87524914.7, 87524914.7, 87524914.7, 87524914.7,
+ 87524914.7, 87524914.7, 87524914.7, 87524914.7, 87524914.7, 87524914.7,
+ 46418440.1, 46418440.1, 46418440.1, 46418440.1, 46418440.1, 46418440.1,
+ 46418440.1, 46418440.1, 46418440.1, 46418440.1, 92833975.5, 92833975.5,
+ 92833975.5, 92833975.5, 92833975.5, 92833975.5, 92833975.5, 92833975.5,
+ 92833975.5, 92833975.5, 139000000.0, 139000000.0, 139000000.0,
+ 139000000.0, 139000000.0, 139000000.0, 139000000.0, 139000000.0,
+ 139000000.0, 139000000.0, 186000000.0, 186000000.0, 186000000.0,
+ 186000000.0, 186000000.0, 186000000.0, 186000000.0, 186000000.0,
+ 186000000.0, 186000000.0, 232000000.0, 232000000.0, 232000000.0)
> as.integer(x)
[1] 52524847 52524847 52524847 52524847 52524847 52524847 52524847 52524847
[9] 52524847 52524847 70026530 70026530 70026530 70026530 70026530 70026530
[17] 70026530 70026530 70026530 70026530 87524914 87524914 87524914 87524914
[25] 87524914 87524914 87524914 87524914 87524914 87524914 46418440 46418440
[33] 46418440 46418440 46418440 46418440 46418440 46418440 46418440 46418440
[41] 92833975 92833975 92833975 92833975 92833975 92833975 92833975 92833975
[49] 92833975 92833975 139000000 139000000 139000000 139000000 139000000 139000000
[57] 139000000 139000000 139000000 139000000 186000000 186000000 186000000 186000000
[65] 186000000 186000000 186000000 186000000 186000000 186000000 232000000 232000000
[73] 232000000
Как видите, приведение ваших чисел к целым числам усекает десятичные разряды .
Обратите внимание, что as.integer()
не не округляет число:
> 70026530.6
[1] 70026531
> as.integer(70026530.6)
[1] 70026530
> options(digits=10) # to force display of decimal places
> 70026530.6
[1] 70026530.6
> as.integer(70026530.6)
[1] 70026530
Кроме того, я довольно легко могу вычислить среднее целых чисел:
> x <- c(4, 5, 6, 6)
> typeof(x)
[1] "double"
> x <- as.integer(x)
> typeof(x)
[1] "integer"
> mean(x)
[1] 5.25
Я также могу aggregate()
означает:
> subsetfinal <- data.frame(NPVC_m1 = x,
Region = rep(c("A", "B"), c(36, 37)),
Model = c(rep(c("one", "two", "three"), 24), "one"))
> aggregate(NPVC_m1 ~ Region + Model, subsetfinal, mean)
Region Model NPVC_m1
1 A one 64632550.34
2 B one 135718369.75
3 A three 67549222.65
4 B three 139243363.88
5 A two 66091023.98
6 B two 135396195.18
Поэтому ваша проблема должна быть не связана с типом или классом чисел, которые вы показываете в своем вопросе.
Пожалуйста, создайте пример данных, которые позволят нам воспроизвести вашу проблему и включите ее в ваш вопрос.
typeof(NPVC_m1)
возвращает "integer"
или "double"
.Но что возвращает class(subsetfinal$NPVC_m1)
? Как заметил @Roland (см. Комментарии ниже), ваша переменная может быть фактором.