为什么我用substr函数得到R中的前六个字符时得到的是小数?

khbbv19g  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(199)

我的 Dataframe 如下所示:

我使用了以下函数来提取hs10变量的前6个数字:

us_chn_tariffs_18$HS6 <- as.numeric(substr(as.character(us_chn_tariffs_18$hs10), 1, 6))

但是,一些变量显示为小数,如下所示:

这是有原因的吗?我怎么能得到整数呢?
谢谢你。

idfiyjo8

idfiyjo81#

当转换为字符时,您保留了科学记数法中的“e”,它只发生在0数量的某些数字中,6个或更多的0将转换为科学记数法。

substr(format(h10, scientific=F), 1,6)

那应该工作得很好(至少在我的R会话中工作得很好),希望有帮助!

i1icjdpr

i1icjdpr2#

你可以考虑除法和trunc运算。

trunc(x/1e4)
# [1] 284699 284699 284700

as.character(trunc(x/1e4))
# [1] "284699" "284699" "284700"
  • 数据:*
x <- 2846999998:2847000000

相关问题