R 用大数字表示2个数字列
我想用数字连接两列,并得到一个数字作为结果。 例子: 第一栏:123456 第二栏:78910 期望结果:12345678910R 用大数字表示2个数字列,r,concatenation,R,Concatenation,我想用数字连接两列,并得到一个数字作为结果。 例子: 第一栏:123456 第二栏:78910 期望结果:12345678910 test<-matrix( c(328897771052600448,4124523780886268), nrow=1, ncol=2 ) test<-data.frame(test) str(test) 这些数字太大,无法准确地存储为数字。您可以通过指定stringsAsFactors=FALSE将它们存储为字符串: test_2&l
test<-matrix(
c(328897771052600448,4124523780886268),
nrow=1,
ncol=2
)
test<-data.frame(test)
str(test)
这些数字太大,无法准确地存储为
数字
。您可以通过指定stringsAsFactors=FALSE将它们存储为字符串:
test_2<-transform(test,visit_id=paste0(post_visid_high,post_visid_low), stringsAsFactors = FALSE)
test_2
#> post_visid_high post_visid_low visit_id
#> 1 3.288978e+17 4.124524e+15 3288977710526004484124523780886268
str(test_2)
#> 'data.frame': 1 obs. of 3 variables:
#> $ post_visid_high: num 3.29e+17
#> $ post_visid_low : num 4.12e+15
#> $ visit_id : chr "3288977710526004484124523780886268"
这些数字太大,无法准确地存储为数字
。您可以通过指定stringsAsFactors=FALSE将它们存储为字符串:
test_2<-transform(test,visit_id=paste0(post_visid_high,post_visid_low), stringsAsFactors = FALSE)
test_2
#> post_visid_high post_visid_low visit_id
#> 1 3.288978e+17 4.124524e+15 3288977710526004484124523780886268
str(test_2)
#> 'data.frame': 1 obs. of 3 variables:
#> $ post_visid_high: num 3.29e+17
#> $ post_visid_low : num 4.12e+15
#> $ visit_id : chr "3288977710526004484124523780886268"
as.numeric()
给出的答案是正确的。只是打印的数字小于数字<代码>打印(测试2,数字=20)
可以显示存储的内容。虽然这还没有揭示一切。尝试使用较小的数字,您将看到为。numeric
给出了正确的值,但数字之间的差异有多大?单个数字328897771052600448在组合数字中转换为328897771052600428(请参见最后两个密码“28”而不是“48”)。为什么是“28”?由as.numeric()
给出的答案是正确的。只是打印的数字小于数字。打印(测试2,数字=20)
可以显示存储的内容。尽管这仍然不能显示所有内容。尝试使用较小的数字,您将看到as.numeric
给出了正确的值,但数字之间的差异有多大?单个数字328897771052600448在组合数字中转换为328897771052600428(请看最后两个密码“28”而不是“48”)。为什么是“28”?
str(test_2)
test_2<-transform(test,visit_id=paste0(post_visid_high,post_visid_low), stringsAsFactors = FALSE)
test_2
#> post_visid_high post_visid_low visit_id
#> 1 3.288978e+17 4.124524e+15 3288977710526004484124523780886268
str(test_2)
#> 'data.frame': 1 obs. of 3 variables:
#> $ post_visid_high: num 3.29e+17
#> $ post_visid_low : num 4.12e+15
#> $ visit_id : chr "3288977710526004484124523780886268"
library(gmp)
test_3 <- test
test_3$visit_id <- as.bigz(paste0(test_3$post_visid_high, test_3$post_visid_low))
test_3
#> post_visid_high post_visid_low visit_id
#> 1 3.288978e+17 4.124524e+15 3288977710526004484124523780886268
str(test_3)
#> 'data.frame': 1 obs. of 3 variables:
#> $ post_visid_high: num 3.29e+17
#> $ post_visid_low : num 4.12e+15
#> $ visit_id : 'bigz' raw 3288977710526004484124523780886268