如果共享值并添加另一列的值,则对行求和
Summing rows if shared value and adding up values of another column
我是 R 的业余用户,目前正在处理来自假想赌注的数据。我对这些数据有两个问题:
- 如果行值共享相同的“日期”和“参与者”值,我该如何求和它们。例如,前两行是同一日期“11-06-2020”和同一参与者“Mike”。我只想有一个单独的行,其中包含此信息并总结了 Points 列值。也就是说,第一行将是 11-06-2020 |迈克 | 2、第二排会是11-06-2020 |保罗 | 4等
- 我的第二个问题是关于累加值。也就是说,如果参与者迈克从日期 11-06-2020 获得 2 分,则该值将累加到 12-06-2020。因此,参与者 Miguel 在 2020 年 6 月 12 日的积分栏中的值为 8 (2+6)。
这是数据:
Date <- c("11-06-2020", "11-06-2020", "11-06-2020", "11-06-2020",
"11-06-2020", "11-06-2020", "12-06-2020", "12-06-2020",
"12-06-2020", "13-06-2020", "13-06-2020", "13-06-2020",
"13-06-2020", "13-06-2020", "13-06-2020", "13-06-2020",
"13-06-2020", "13-06-2020")
Participants <- c("Mike", "Mike", "Paul", "Paul", "Sarah", "Sarah",
"Mike", "Paul", "Sarah", "Mike", "Mike", "Mike",
"Paul", "Paul", "Paul", "Sarah", "Sarah", "Sarah")
Points <- c(0, 2, 2, 2, 4, 2, 6, 0, 2, 2, 10, 0, 4, 6, 0, 6, 4, 2)
bet <- data.frame(Date, Participants, Points)
# Output from the console:
Date Participants Points
1 11-06-2020 Mike 0
2 11-06-2020 Mike 2
3 11-06-2020 Paul 2
4 11-06-2020 Paul 2
5 11-06-2020 Sarah 4
6 11-06-2020 Sarah 2
7 12-06-2020 Mike 6
8 12-06-2020 Paul 0
9 12-06-2020 Sarah 2
10 13-06-2020 Mike 2
11 13-06-2020 Mike 10
12 13-06-2020 Mike 0
13 13-06-2020 Paul 4
14 13-06-2020 Paul 6
15 13-06-2020 Paul 0
16 13-06-2020 Sarah 6
17 13-06-2020 Sarah 4
18 13-06-2020 Sarah 2
使用dplyr
:
问题 1:
bet2 <- count(bet, Date, Participants, wt = Points, name = "Points")
bet2
Date Participants Points
1 11-06-2020 Mike 2
2 11-06-2020 Paul 4
3 11-06-2020 Sarah 6
4 12-06-2020 Mike 6
5 12-06-2020 Paul 0
6 12-06-2020 Sarah 2
7 13-06-2020 Mike 12
8 13-06-2020 Paul 10
9 13-06-2020 Sarah 12
问题 2:
bet2 |>
group_by(Participants) |>
mutate(CumuPoints = cumsum(Points)) |>
ungroup()
Date Participants Points CumuPoints
1 11-06-2020 Mike 2 2
2 11-06-2020 Paul 4 4
3 11-06-2020 Sarah 6 6
4 12-06-2020 Mike 6 8
5 12-06-2020 Paul 0 4
6 12-06-2020 Sarah 2 8
7 13-06-2020 Mike 12 20
8 13-06-2020 Paul 10 14
9 13-06-2020 Sarah 12 20
我是 R 的业余用户,目前正在处理来自假想赌注的数据。我对这些数据有两个问题:
- 如果行值共享相同的“日期”和“参与者”值,我该如何求和它们。例如,前两行是同一日期“11-06-2020”和同一参与者“Mike”。我只想有一个单独的行,其中包含此信息并总结了 Points 列值。也就是说,第一行将是 11-06-2020 |迈克 | 2、第二排会是11-06-2020 |保罗 | 4等
- 我的第二个问题是关于累加值。也就是说,如果参与者迈克从日期 11-06-2020 获得 2 分,则该值将累加到 12-06-2020。因此,参与者 Miguel 在 2020 年 6 月 12 日的积分栏中的值为 8 (2+6)。 这是数据:
Date <- c("11-06-2020", "11-06-2020", "11-06-2020", "11-06-2020",
"11-06-2020", "11-06-2020", "12-06-2020", "12-06-2020",
"12-06-2020", "13-06-2020", "13-06-2020", "13-06-2020",
"13-06-2020", "13-06-2020", "13-06-2020", "13-06-2020",
"13-06-2020", "13-06-2020")
Participants <- c("Mike", "Mike", "Paul", "Paul", "Sarah", "Sarah",
"Mike", "Paul", "Sarah", "Mike", "Mike", "Mike",
"Paul", "Paul", "Paul", "Sarah", "Sarah", "Sarah")
Points <- c(0, 2, 2, 2, 4, 2, 6, 0, 2, 2, 10, 0, 4, 6, 0, 6, 4, 2)
bet <- data.frame(Date, Participants, Points)
# Output from the console:
Date Participants Points
1 11-06-2020 Mike 0
2 11-06-2020 Mike 2
3 11-06-2020 Paul 2
4 11-06-2020 Paul 2
5 11-06-2020 Sarah 4
6 11-06-2020 Sarah 2
7 12-06-2020 Mike 6
8 12-06-2020 Paul 0
9 12-06-2020 Sarah 2
10 13-06-2020 Mike 2
11 13-06-2020 Mike 10
12 13-06-2020 Mike 0
13 13-06-2020 Paul 4
14 13-06-2020 Paul 6
15 13-06-2020 Paul 0
16 13-06-2020 Sarah 6
17 13-06-2020 Sarah 4
18 13-06-2020 Sarah 2
使用dplyr
:
问题 1:
bet2 <- count(bet, Date, Participants, wt = Points, name = "Points")
bet2
Date Participants Points
1 11-06-2020 Mike 2
2 11-06-2020 Paul 4
3 11-06-2020 Sarah 6
4 12-06-2020 Mike 6
5 12-06-2020 Paul 0
6 12-06-2020 Sarah 2
7 13-06-2020 Mike 12
8 13-06-2020 Paul 10
9 13-06-2020 Sarah 12
问题 2:
bet2 |>
group_by(Participants) |>
mutate(CumuPoints = cumsum(Points)) |>
ungroup()
Date Participants Points CumuPoints
1 11-06-2020 Mike 2 2
2 11-06-2020 Paul 4 4
3 11-06-2020 Sarah 6 6
4 12-06-2020 Mike 6 8
5 12-06-2020 Paul 0 4
6 12-06-2020 Sarah 2 8
7 13-06-2020 Mike 12 20
8 13-06-2020 Paul 10 14
9 13-06-2020 Sarah 12 20