我正在尝试找到一种方法来对按照HS编码(产品的协调编码)分组的导入值进行分组。我有一个数据集,其中包含HS10产品的进口值;我想对行进行求和并将数据集转换为HS8的Import值副产品。 HS10表示使用的代码长度为10个字符,HS8表示使用的代码长度为8个字符。在重写一个新函数来解决这个问题之前,我想知道是否有一些软件包可以解决我的问题。
Below is a little Head of my dataset:
> head(tun)
HS.code10 Import
1 1022110000 0
2 1022110005 1051
3 1022999026 19126
4 1041030017 1289
5 1051119007 134
6 1051191000 0
期望的结果是:
> head(tun)
HS.code8 Import
1 10221100 1051
2 10229990 19126
3 10410300 1289
4 10511190 134
5 10511910 0
我尝试了Group_by并从dplyr包中总结但没有成功
答案 0 :(得分:0)
您可以在调用HS.code10
和aggregate
sum
值时提取Import
的前8个字符。
agg <- aggregate(Import ~ substr(HS.code10, 1, 8), tun, sum)
names(agg)[1] <- "HS.code8"
agg
# HS.code8 Import
#1 10221100 1051
#2 10229990 19126
#3 10410300 1289
#4 10511190 134
#5 10511910 0
数据。
tun <-
structure(list(HS.code10 = c(1022110000L, 1022110005L, 1022999026L,
1041030017L, 1051119007L, 1051191000L), Import = c(0L, 1051L,
19126L, 1289L, 134L, 0L)), .Names = c("HS.code10", "Import"), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))