美文网首页R
一次小小的R输出的翻车经历

一次小小的R输出的翻车经历

作者: 城管大队哈队长 | 来源:发表于2020-01-06 19:51 被阅读0次

之前发现了具名向量在用 write.csv 输出的时候,列名刚好会是向量的名字,所以一直用 write.csv 来输出结果。但今天突然发现我输出的那个向量的行名消失了,但如果我随机抽取了其中一部分向量输出,行名仍旧在。所以我做了一个测试,发现了一个奇怪的现象,R在小数据输出的时候,会保留行名,而在大数据输出的时候,行名则不会保留,怀疑会不会是R的内存管理机制。

> a <- 1:10
> names(a) <- stringi::stri_rand_strings(10,length = 5)
> write.csv(a,"a.csv")
> read.csv("a.csv")[1:5,]
      X x
1 3dggA 1
2 gVyHC 2
3 2EBPT 3
4 5dCJT 4
5 laCOU 5
> b <- 1:10E5
> names(b) <- stringi::stri_rand_strings(10E5,length = 5)
> write.csv(b,"b.csv")
> read.csv("b.csv")[1:5,]
  X x
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5

然后在twitter上Po出了这个问题,后来一个老哥提醒了我,可能并不是R对于大小数据敏感,而只是我的测试数据单纯有重复名字。

> length(unique(stringi::stri_rand_strings(10E5,length = 5)))
[1] 999440

在我换了测试数据之后,果然这个 “bug” 消失了。

> b <- 1:10E5
> names(b) <- paste0("str",1:10E5)
> write.csv(b,"b.csv")
> read.csv("b.csv")[1:5,]
     X x
1 str1 1
2 str2 2
3 str3 3
4 str4 4
5 str5 5

所以最后感觉是R不支持有行名相同导致的情况……

相关文章

  • 一次小小的R输出的翻车经历

    之前发现了具名向量在用 write.csv 输出的时候,列名刚好会是向量的名字,所以一直用 write.csv 来...

  • 经历一次输出

    人生,总是在一天天的重复中过好。(这样的一句话,奠定了全文的感情基调)怪不得人说:第一段很重要。 从我们开始有电子...

  • 装修小白翻车记录

    今天又是翻车的一天,继灯翻车后,床垫又出现了大翻车了! 作为一个装修小白,不经历过几次翻车,何以话装修。但是我万万...

  • 一次小小的赚钱经历

    这是我加入007以来的第0篇文章。希望能开一个好头,输出一些有意思的内容。 我就分享一下今天抓住的一次小的赚钱机会...

  • 一次小小的蜕变经历

    这两天我算是经历了一场突入起来的自我怀疑风暴。 当我陷入莫名的焦虑无法自拔时,我才发现生理期如约而至。 回忆自己那...

  • R相关命令

    R字符处理相关 R画图相关 文件输出

  • R:绘制临床三线表

    R 表格速成 R数据处理能力非常强大,而且输出也非常灵活。当然在R里面的输出都是print字符形式,我们在R里面看...

  • 02-print

    >>> print('h r u', end='') ----同行输出 h r u>>>

  • shell 下处理json工具jq常用命令

    -r :输出原始字符串,而不是JSON文本,比如我们输出的为”abcd”,想输出为abcd,可以使用-r解决 -s...

  • R输出list!!

    我从来都没有成功用R把list输出过,只用过save-load这样的傻方法,并不能变成文本信息。但是今天发现了一个...

网友评论

    本文标题:一次小小的R输出的翻车经历

    本文链接:https://www.haomeiwen.com/subject/eutlactx.html