Как получить сумму произведения выбранного столбца во фрейме данных? - PullRequest
1 голос
/ 26 мая 2020

Это, наверное, очень просто, но я не мог придумать решения. У меня есть следующий фрейм данных, и я хочу умножить столбец y на столбец z и просуммировать ответ.

> df <- data.frame(x = c(1,2,3), y = c(2,4,6), z = c(2,3,4))
> df
  x y z
1 1 2 2
2 2 4 3
3 3 6 4

Найденное значение должно быть равно 40.

Ответы [ 2 ]

1 голос
/ 26 мая 2020

with будет вариантом здесь, если мы не хотим повторять df$ или df[[ для извлечения столбца

with(df, sum( y * z))
#[1] 40

или %*%

c(df$y %*% df$z)
0 голосов
/ 27 мая 2020

Дополнительно вы можете использовать таблицу данных. Вторая строка после запятой указывает столбцы (j). Вам не нужны пробелы, они просто показывают, как это работает.

library(data.table)

a <- data.table(x = c(1,2,3), y = c(2,4,6), z = c(2,3,4))
#dt i    j      by
a[   , sum(y*z),  ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...