R data.table将日期列转换为月份

时间:2016-02-20 16:51:42

标签: r data.table posixct posixlt

我有以下玩具['Left' if isinstance(x, unicode) and u'L' in x else x for x in df['group']]

data.table

我试图在表格中添加一个额外的列,其中包含日期的三个字母缩写。我试过了

 x = data.table(dt = c('2015-01-01','2015-02-01','2016-04-01'))

但它回复了以下内容,一个警告和一个空字段。

 x$dt = strptime(x$dt,'%b')

我在SO上发现之前的Q&amp; A表示Warning messages: 1: In `[<-.data.table`(x, j = name, value = value) : Supplied 9 items to be assigned to 3 items of column 'dt' (6 unused) 2: In `[<-.data.table`(x, j = name, value = value) : Coerced 'list' RHS to 'character' to match the column's type. Either change the target column to 'list' first (by creating a new 'list' vector length 3 (nrows of entire table) and assign that; i.e. 'replace' column), or coerce RHS to 'character' (e.g. 1L, NA_[real|integer]_, as.*, etc) to make your intent clear and for speed. Or, set the column type correctly up front when you create the table and stick to it, please. > x dt mnth 1: c(NA, NA, NA) 2: c(NA, NA, NA) 3: c(NA, NA, NA) 返回了一个列表但是还没有能够完成这个相对简单的任务。有人可以提供一些指示吗?

1 个答案:

答案 0 :(得分:3)

我们可以使用format

format(strptime(x$dt, '%Y-%m-%d'), '%b')

或者@Frank提到,format.Date可以应用于Date

format(as.Date(x$dt), "%b")