晚安,
我的数据看起来像这样
FY Type Total
2014 State $5,000
2014 Federal $2,596
2014 State $5,123
2014 Federal $2,567
2013 State $5,555
2013 Federal $2,784
2013 State $5,562
2013 Federal $2,556
我如何通过FY和R中的类型获得总计?
所以它看起来像:
FY Type Total
2013 Federal $5,340
2013 State $11,117
2014 Federal $5,163
2014 State $10,123
答案 0 :(得分:2)
您需要转换为数字以获得总和,然后这是一个简单的聚合。此处public static int computeRecursive(int n){
if(n <= 1){
return n;
}
else{
return 2 * computeRecursive(n-2) + computeRecursive(n-1);
}
}
用于临时将transform
列转换为数字,原始数据保持不变。
Total
或aggregate(
Total ~ Type + FY,
transform(df, Total = as.numeric(gsub("\\D", "", Total))),
sum
)
# Type FY Total
# 1 Federal 2013 5340
# 2 State 2013 11117
# 3 Federal 2014 5163
# 4 State 2014 10123
输出略有不同。
xtabs
答案 1 :(得分:1)
我们可以使用tidyverse
。按“&#39; FY&#39;,&#39;类型&#39;分组后,提取&#39;总计&#39;的数字部分。使用parse_number
获取sum
和paste
,$
作为前缀
library(tidyverse)
df1 %>%
group_by(FY, Type) %>%
summarise(Total = dollar_format()(sum(parse_number(Total))))
# FY Type Total
# <int> <chr> <chr>
#1 2013 Federal $5,340
#2 2013 State $11,117
#3 2014 Federal $5,163
#4 2014 State $10,123
注意:dollar_format
来自scales
,parse_number
来自readr
和summarise
,group_by
来自dplyr
我们也可以使用rowsum
base R
rowsum(as.numeric(gsub("[^0-9.]+", "", df1$Total)), interaction(df1[-3]))