2015-04-29 3 views
0

мне нужно разработать суммирования
(XI-м)^3Суммирование в R программного обеспечения

  • я принимает значения от 1 до 25
  • XI являются элементы вектора х
  • m - среднее значение вектора x

Правильный ли приведенный ниже код?

s<-sum((xi-m)^3) 
+5

Возможно 'сумма ((х-средняя (х))^3)' –

ответ

3

Некоторые данные первых:

set.seed(1) 
x = rnorm(100, 20, 3) 

Вместо использования x - mean(x), вы можете использовать scale, избегая разделить со стандартным отклонением, используя scale=F в качестве аргумента:

sum(scale(x[1:25], scale=F)^3) 

#> sum((x[1:25]-mean(x[1:25]))^3)==sum(scale(x[1:25], scale=F)^3) 
#[1] TRUE 
+1

Я подозреваю, что ОП может пытаться индексы 1:25 вектора х, в отличие от суммирования 1:25 –

+0

Если это 'sum (scale (x [1:25], scale = F)^3)' или OP хочет, чтобы сумма целого вектора была изъята из первых 25 значений и суммировала их? Это совершенно неясно. –

+0

@Colonel Beauvel: приятное решение! обратите внимание, что в вашем ответе есть небольшая, но важная опечатка, 1:25 должно быть x [1:25]. –

0

Я думаю, что ваш код верен, если вещь, которую вы ищете, представляет собой сумму остатков (значения минус среднее), приведенные в действие 3, просто рассмотрите эти примеры:

y <- rnorm(25) 
> sum(y - mean(y))^3 
[1] -1.710569e-49 
> sum(y - mean(y)^3) 
[1] -4.262774 
> sum((y - mean(y))^3) 
[1] 9.449698 
Смежные вопросы