首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大整数(INT64)

大整数(INT64)
EN

Stack Overflow用户
提问于 2014-02-25 02:37:47
回答 1查看 355关注 0票数 1

我有一个巨大的csv文件,它有一个具有大整数值的数字列。下面有一个样品。

代码语言:javascript
复制
0, 0, 11536375, 0, 1152921504606846976, 75962, 258238559    
1, 0, 11536375, 1, 1152921504606846977, 609189, 1515555074
2, 0, 11536375, 2, 1152921504606846978, 609189, 1530344731

我试着把列1,3,5:7读入R数据帧。为了提高效率,我决定使用sqldf,因为我已经使用sqldf读取其他数据源。问题是sqldf将列5截断为1.152922e+18,这更像是我需要加入另一个DF的索引。所以我需要确切的价值。我不认为罗的论点会有帮助。我确实需要读取一个比基数R所能处理的值更高的值。我认为INT64包可能会有所帮助,但已经存档了。关于如何在sqldf中读取大int,有什么建议吗?

通过将第5列指定为字符串,我将扫描用作工作。我现在得到了全部值,但是在联接/合并中使用它是没有效率的。如果以字符串形式读取是唯一的出路,那么我可以在sqldf中实现这一点吗?sqldf不支持“什么”和"colClasses“。我怎么能提到第5栏应该被视为字符串呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 16:21:41

试试这个:

代码语言:javascript
复制
library(sqldf)

# create test data
Lines <- "a, b, c, d, e, f, g
0, 0, 11536375, 0, 1152921504606846976, 75962, 258238559    
1, 0, 11536375, 1, 1152921504606846977, 609189, 1515555074
2, 0, 11536375, 2, 1152921504606846978, 609189, 1530344731
"
cat(Lines, file = "testFile.dat")

DF <- read.csv.sql("testFile.dat", sql = 
  "select a, b, c, d, cast(e as text) e, f, g from file")

给予:

代码语言:javascript
复制
> DF
  a b        c d                    e      f          g
1 0 0 11536375 0  1152921504606846976  75962  258238559
2 1 0 11536375 1  1152921504606846977 609189 1515555074
3 2 0 11536375 2  1152921504606846978 609189 1530344731
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22003517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档