Как суммировать значения по определенной строке в столбце? - PullRequest
0 голосов
/ 19 апреля 2019

Я ищу решение в. А именно для набора данных = данных, я хотел бы добавить значения в соответствии со столбцом X или столбцом Y. Выбор столбца определяется "строкой" в столбце Z.

dataset:

data
    Z    X    Y
"aaa"    1    10
"aaa"    1    10
"bbb"    2    20
"bbb"    2    20
"ccc"    3    30
"ccc"    3    30

effect1:

data1
    Z  sumX  sumY
"aaa"   2    20
"bbb"   4    40
"ccc"   6    60

effect2: 
data2_sum
    Z    totalXY
"aaa"    2
"bbb"    4
"ccc"    60

Заранее благодарю за помощь.С уважением Петр

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019
  1. Ниже приведены необработанные данные:

данные Z X Y "ааа" 1 10 "ааа" 1 10 "BBB" 2 20 "BBB" 2 20 "ccc" 3 30 "ccc" 3 30

На первом шаге я хотел бы суммировать столбцы X и Y для переменных Z (т. Е. "Aaa", "bbb", "ccc")

effect1:

data1 Z sumX sumY "ааа" 2 20 "BBB" 4 40 "ccc" 6 60

Далее я хотел бы, чтобы код effect2 сложился в соответствии с такой зависимостью.

  1. Создать фрейм данных из столбцов Z и нового столбца totalXY. 1.1. Если столбец «aaa» или «bbb» в столбце Z находится в новом столбце totalXY, вставьте значение из effect1 из столбца sumX 1.2. Если столбец «Z» равен «ccc», то в новый столбец totalXY (effect2) вставьте значение из effect1 из столбца sumY

effect2: data2_sum Z totalXY "ааа" 2 "BBB" 4 "ccc" 60

0 голосов
/ 19 апреля 2019

Для вашего effect1 код прост, используя dplyr

library(dplyr)
df <- data.frame(
      Z =  c("aaa", "aaa","bbb","bbb","ccc","ccc"),
      X = c(1,1,2,2,3,3),
      Y = c(10,10,20,20,30,30))

df %>% 
  group_by(Z) %>% 
  summarise(sumX = sum(X),
            sumY = sum(Y))

Не ясно, что вы хотите вычислить в effect2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...