在 R 中使用 Group by 使用 dplyr
Using Group by in R using dplyr
抱歉,现在我明白我的问题有点含糊了。我正在现场环境中工作,请在下面找到一些盲测数据:-
structure(list(Rco = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("A220",
"B334"), class = "factor"), month = structure(c(2L, 1L, 3L, 2L,
1L, 3L), .Label = c("Feb", "Jan", "Mar"), class = "factor"),
Count = c(12, 22, 33, 44, 55, 66)), .Names = c("Rco", "month",
"Count"), row.names = c(NA, 6L), class = "data.frame")
然后我将继续根据该数据(使用 Rcharts)生成条形图,如下所示:-
b <- hPlot(x = 'Rco', y = 'Count', data = test, type = 'bar', group = 'month',title = "AAAAAA", subtitle = "Bar Graph")
现在这完全符合我的目的值,但是当我遇到所有月份的数据都不存在的情况时(请在下面的情况下)我得到不正确的输出:-
测试 <- 结构(列表(Rco = 结构(c(1L,1L,2L,2L,2L,3L),.Label = c("A220","B334","C123"), class = "factor"), 月 = 结构(c(2L, 1L, 3L, 2L, 1L, 2L), .Label = c("Feb", "Jan", "Mar"), class = "factor"), 计数 = c(12, 22, 33, 44, 55, 66)), .Names = c("Rco", "month", "Count"), row.names = c(NA, 6L), class = "data.frame")
b <- hPlot(x = 'Rco', y = 'Count', data = test, type = 'bar', group = 'month',title = "AAAAAA", subtitle = "Bar Graph")
请运行数据上的Rcharts::hplot函数,你会发现代表代码的条形混淆了(对于C123和B334)。
我在互联网上找不到任何说明这是 Rcharts 中的问题的参考资料,所以我想我会通过为每个 Rco 创建额外的行并用零填充它们来处理它,以便我可以获得数据每个 R co 每月有一条记录的框架。此外,可能超过 4 个月 - 数据可能是一年或 2 年,所以我必须使其动态化。
如有任何帮助,我们将不胜感激。
提前致谢
您可以使用table()
(假设您的数据框称为数据):
table(data$First.Name, data$Sex)
FEMALE MALE
Edgar 0 1
Jane 1 0
John 0 1
Walt 0 1
beetroot 的回答应该没问题,但这里有一个 'tidyverse' 解决方案:
df %>%
count(First.Name, Sex) %>%
ungroup() %>%
tidyr::complete(First.Name, Sex, fill = list(n = 0))
结果:
Source: local data frame [8 x 3]
First.Name Sex n
(fctr) (fctr) (dbl)
1 Edgar FEMALE 0
2 Edgar MALE 1
3 Jane FEMALE 1
4 Jane MALE 0
5 John FEMALE 0
6 John MALE 1
7 Walt FEMALE 0
8 Walt MALE 1
抱歉,现在我明白我的问题有点含糊了。我正在现场环境中工作,请在下面找到一些盲测数据:-
structure(list(Rco = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("A220",
"B334"), class = "factor"), month = structure(c(2L, 1L, 3L, 2L,
1L, 3L), .Label = c("Feb", "Jan", "Mar"), class = "factor"),
Count = c(12, 22, 33, 44, 55, 66)), .Names = c("Rco", "month",
"Count"), row.names = c(NA, 6L), class = "data.frame")
然后我将继续根据该数据(使用 Rcharts)生成条形图,如下所示:-
b <- hPlot(x = 'Rco', y = 'Count', data = test, type = 'bar', group = 'month',title = "AAAAAA", subtitle = "Bar Graph")
现在这完全符合我的目的值,但是当我遇到所有月份的数据都不存在的情况时(请在下面的情况下)我得到不正确的输出:-
测试 <- 结构(列表(Rco = 结构(c(1L,1L,2L,2L,2L,3L),.Label = c("A220","B334","C123"), class = "factor"), 月 = 结构(c(2L, 1L, 3L, 2L, 1L, 2L), .Label = c("Feb", "Jan", "Mar"), class = "factor"), 计数 = c(12, 22, 33, 44, 55, 66)), .Names = c("Rco", "month", "Count"), row.names = c(NA, 6L), class = "data.frame")
b <- hPlot(x = 'Rco', y = 'Count', data = test, type = 'bar', group = 'month',title = "AAAAAA", subtitle = "Bar Graph")
请运行数据上的Rcharts::hplot函数,你会发现代表代码的条形混淆了(对于C123和B334)。
我在互联网上找不到任何说明这是 Rcharts 中的问题的参考资料,所以我想我会通过为每个 Rco 创建额外的行并用零填充它们来处理它,以便我可以获得数据每个 R co 每月有一条记录的框架。此外,可能超过 4 个月 - 数据可能是一年或 2 年,所以我必须使其动态化。
如有任何帮助,我们将不胜感激。
提前致谢
您可以使用table()
(假设您的数据框称为数据):
table(data$First.Name, data$Sex)
FEMALE MALE
Edgar 0 1
Jane 1 0
John 0 1
Walt 0 1
beetroot 的回答应该没问题,但这里有一个 'tidyverse' 解决方案:
df %>%
count(First.Name, Sex) %>%
ungroup() %>%
tidyr::complete(First.Name, Sex, fill = list(n = 0))
结果:
Source: local data frame [8 x 3]
First.Name Sex n
(fctr) (fctr) (dbl)
1 Edgar FEMALE 0
2 Edgar MALE 1
3 Jane FEMALE 1
4 Jane MALE 0
5 John FEMALE 0
6 John MALE 1
7 Walt FEMALE 0
8 Walt MALE 1