在使用unlist函数,将日期型的列表,转换为向量时,不会得到期望的结果,如下:

  1. > dateLst <- list(Sys.Date())
  2. > dateLst
  3. [[1]]
  4. [1] "2015-08-11"
  5.  
  6. > dateVector <- unlist(dateLst)
  7. > dateVector
  8. [1] 16658
  9.  
  10. 同样的原因,在使用sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)时,如果X为日期型向量,FUN返回日期,那么结果不会是预期的日期型向量,如下:
  1. > date.vector.string <- c("20010101")
  2. > date.vector <- sapply(date.vector.string, get.date)
  3. > date.vector
  4. 20010101
  5. 11323
  6.  
  7. 其中:
    # Get date from date string. Assumed the format of date string is like "20011230"
    #
    # Args:
    # date.string: date string like "20011230"
    #
    # Returns:
    # date.
    get.date <- function(date.string){
      #  deal with the Error in strptime(x, format, tz = "GMT") : input string is too long
      if(nchar(date.string) != 8)
        return(NA)
     
      date <- try(as.Date(date.string, "%Y%m%d"))
      return(date)
    }
  8.  
  9. sapply的结果,看起来可以认为是先调用lapply,得到的list后,调用unlist,试图得到与date.vector.string同类型的结果即向量。
  10.  
  11. 考虑到日期型列表转换为向量的麻烦,最好的方法就是不要出现日期型列表,尽量用向量。
  12.  
  13. 关于对
  1. > dateVector <- unlist(dateLst)
  2. > dateVector
  3. [1] 16658
  4.  
  5. 的解释,可以参加下列代码:
  1. > as.Date(16658, origin = "1970-01-01")
  2. [1] "2015-08-11"
  3.  
  4. 看来unlist时默认了一个时间点1970-01-01.

使用unlist将日期型数据的列表转换为向量时,出现的异常的更多相关文章

  1. 用R语言提取数据框中日期对应年份(列表转矩阵)

    用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...

  2. pandas中对日期型数据进行处理

    因为数据不方便展示,直接上代码. 将字符串转为datetime64[ns]格式: pd.to_datetime('2019-12-20') or pd.to_datetime('20191220') ...

  3. 对象列表转换为DataTable或DataTable转换为对象列表.

    /**********************************************************************************/ // 说明: 数据转换工具. ...

  4. python中循环删除列表中元素时的坑!

    循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: def test(data): for i in data: data.remove(i) return data ...

  5. (一)求 int 型数据在内存中存储时 1 的个数

    题目:求 int 型数据在内存中存储时 1 的个数 描述:输入一个 int 型数据,计算出该 int 型数据在内存中存储时 1 的个数 运行时间限制: 10 sec 内存限制:128 MByte 输入 ...

  6. 华为机试 求int型数据在内存中存储时1的个数

    题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 输入 5 输出 2 普通运算方 ...

  7. 求int型数据在内存中存储时1的个数

    1.求int型数据在内存中存储时1的个数 输入一个int型数据,计算出该int型数据在内存中存储时1的个数. 我们非常easy想到例如以下方法: #include <iostream> u ...

  8. php实现 求int型数据在内存中存储时1的个数(函数都可自己实现)

    php实现 求int型数据在内存中存储时1的个数(函数都可自己实现) 一.总结 一句话总结:函数我们自己都可以实现,尤其是很多基础函数,没有工具的时候自己写. 1.php进制转换函数? base_co ...

  9. python3 列表转换为字符串

    join将列表转换为字符串 list1 = ["张三","李四","王五"] a1 = ','.join(list1) print(a1) ...

随机推荐

  1. 高性能流媒体服务器EasyDSS前端重构(四)- webpack + video.js 打造流媒体服务器前端

    接上篇 接上篇<高性能流媒体服务器EasyDSS前端重构(三)- webpack + vue + AdminLTE 多页面引入 element-ui> 本文围绕着实现EasyDSS高性能流 ...

  2. IIS发布问题集锦

    1. 2.文件都是Not Found 3.删除了PrecompiledApp.config文件就可以了: 4.预编译:http://blog.darkthread.net/post-2012-04-2 ...

  3. php总结7——文件函数库、序列化数据、文件包含

    7.1 文件函数库 php用来操作文件的 1) fopen    代开文件或URL 格式:resource fopen(string $filename, string $mode) 'r' 只读方式 ...

  4. sort()函数到底是怎样进行数字排序的

    很多人会用sort(),并不见得知道它具体是怎样给数字排序的.其实不知道也行,会用就可以,感兴趣的可以来看看. var numberArray = [2,4,1,3]; numberArray.sor ...

  5. 微信小程序配置详解

    在之前已经通过微信公众平台的官方网站https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html,注册好小程序并且登录成功后(这里主 ...

  6. 【总结】性能调优:JVM内存调优相关文章

    [总结]性能调优:JVM内存诊断工具 [总结]性能调优:CPU消耗分析 [总结]性能调优:消耗分析 JVM性能调优

  7. graphics基础

  8. jQuery 网页禁止复制

    <script type="text/javascript">    $(document).ready(function(){         $('#文本框id') ...

  9. ubuntu gitlab服务器搭建

    gitlab服务器搭建 1.安装依赖包 sudo apt-get install curl openssh-server ca-certificates postfix 执行完成后,出现邮件配置,选择 ...

  10. ES6 Class基本用法

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x = x; this.y = y; } Point.pr ...