楼主: johnmy
2963 2

[问答] read.table和read_table读入的结果不一样是怎么回事? [推广有奖]

  • 2关注
  • 5粉丝

已卖:702份资源

讲师

37%

还不是VIP/贵宾

-

威望
0
论坛币
6961 个
通用积分
93.6701
学术水平
42 点
热心指数
55 点
信用等级
20 点
经验
8631 点
帖子
563
精华
0
在线时间
374 小时
注册时间
2008-4-10
最后登录
2026-1-2

楼主
johnmy 发表于 2017-3-3 05:08:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. library(readr)
  2. dd<-read.table("decay.txt",header = T)
  3. ds<-read_table("decay.txt")
  4. tail(dd)
  5. tail(ds)
  6. # > tail(dd)
  7. # time CHT.1_E.00001
  8. # 2043 8172.004        11.180
  9. # 2044 8176.004        15.133
  10. # 2045 8180.004        13.416
  11. # 2046 8184.004        21.954
  12. # 2047 8188.004        38.949
  13. # 2048 8192.004        15.811
  14. # > tail(ds)
  15. # # A tibble: 6 × 2
  16. # time `CHT-1_E.00001`
  17. # <chr>           <dbl>
  18. #   1 172.004          11.180
  19. # 2 176.004          15.133
  20. # 3 180.004          13.416
  21. # 4 184.004          21.954
  22. # 5 188.004          38.949
  23. # 6 192.004          15.811
复制代码
不管数据的类型,第二列两个都一样,而第一列不同。read.table读入的结果是正确的。这是为什么?按说两个应该是一样的,只是read_table读取速度更快些。数据有2048行,是不是对于行数超过多少的要加什么参数。?read_table中试了两个n_max,guess_max设为3000都不行。

数据文件:https://pan.baidu.com/s/1nuIRQBJ
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Table ABLE READ ABL tab

学习R

沙发
cheetahfly 在职认证  发表于 2017-3-3 09:12:17
我试了一下,可能的原因是:由于第一列数字起始的位置不一定,从最开头的第16位,到最底下的第13位,read_table()可能选取最上面的n(n应该小于1000,且这个参数貌似不可调整)行来确定最终该列开始的位置,因此1000行以后千位数都被截取了。
我改用了read_fwf(),是可行的方法之一:
  1. read_fwf("decay.txt",
  2.            col_positions = fwf_positions(start = c(1, 25),
  3.                                           end = c(24, NA),
  4.                                           col_names = c("time", "CHT_1_E.00001")),
  5.            skip = 1)
复制代码


藤椅
johnmy 发表于 2017-3-3 13:57:35
cheetahfly 发表于 2017-3-3 09:12
我试了一下,可能的原因是:由于第一列数字起始的位置不一定,从最开头的第16位,到最底下的第13位,read_t ...
可以,好的,谢谢了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 02:15