【发布时间】:2018-06-11 15:51:53
【问题描述】:
我想用数字连接 2 列并得到一个数字。 例子: 第一栏:123456 第二栏:78910 期望的结果:12345678910
test<-matrix(
c(328897771052600448,4124523780886268),
nrow=1,
ncol=2
)
test<-data.frame(test)
str(test)
两列都是数字
colnames(test)<-c("post_visid_high","post_visid_low")
test_2<-transform(test,visit_id=as.numeric(paste0(post_visid_high,post_visid_low)))
问题: 我的连接结果给出:3.288977710526004289528e+33 我不明白为什么我得到这个(不正确的??)号码。
当我排除“as.numeric”时,我得到了正确的结果:
test_2<-transform(test,visit_id=paste0(post_visid_high,post_visid_low))
test_2
但它转换为“因素”:
str(test_2)
【问题讨论】:
-
as.numeric()给出的答案是正确的。只是打印的数字小于数字。print(test_2,digits=20)可以显示存储的内容。尽管这仍然不能揭示一切。尝试使用较小的数字,您会看到as.numeric给出了正确的值 -
但数字不同怎么可能?单个数字 328897771052600448 在组合数字中转换为 328897771052600428(请参阅最后两个密码“28”而不是“48”)。为什么是“28”?
标签: r concatenation