我正试图找到一种方法,将按其“统一编码”(产品的协调编码)归类的“进口价值”分组。我在HS10有一个按产品导入值的数据集;我希望对行进行求和,并在HS8将数据集转换为导入值副产品。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包,但是没有成功。
发布于 2018-06-18 12:35:07
您可以在对HS.code10
的调用中提取aggregate
的前8个字符,并对Import
值进行sum
。
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"))
https://stackoverflow.com/questions/50909472
复制相似问题