R 从带有日期的向量中分离年份
如何从带有日期的向量中分离出年份?或者一般来说:你怎么能把一个单词的一部分(这里是一个单词的最后四个字母)分离出来 我试过使用lubridate软件包R 从带有日期的向量中分离年份,r,vector,dataframe,character,R,Vector,Dataframe,Character,如何从带有日期的向量中分离出年份?或者一般来说:你怎么能把一个单词的一部分(这里是一个单词的最后四个字母)分离出来 我试过使用lubridate软件包 require(lubridate) mydf$year <- year(mydf$date) require(润滑油) mydf$year这里有两种方法,一种基于日期,一种基于字符: with(mydf, substr(date, nchar(as.character(date)) - 3, nch
require(lubridate)
mydf$year <- year(mydf$date)
require(润滑油)
mydf$year这里有两种方法,一种基于日期,一种基于字符:
with(mydf, substr(date, nchar(as.character(date)) - 3,
nchar(as.character(date))))
# [1] "2001" "2003" "2004" "2001" "2003"
format(as.Date(mydf$date, "%d.%m.%Y"), "%Y")
# [1] "2001" "2003" "2004" "2001" "2003"
在这种情况下,nchar
是多余的,因为字符串的宽度是固定的,但这应该为您提供一个示例,说明如何从字符串的末尾向后移动4个字符。使用包中的stri_sub
获得最后4个字符,如下所示:
# date company year
# 1 05.06.2001 1 2001
# 2 02.10.2003 1 2003
# 3 06.12.2004 1 2004
# 4 01.01.2001 2 2001
# 5 01.04.2003 2 2003
require(stringi)
stri_sub(mydf$date, from=-4)
## [1] "2001" "2003" "2004" "2001" "2003"
from
参数中使用的负值表示字符应从字符串末尾开始计数。to
参数的默认值是-1,意思是“直到结束”,因此无需更改此值。-1:您尝试了什么?考虑到您的更新,也许您也应该编辑您的标题。我个人仍然认为这是一个易于通过谷歌搜索的问题。@Ananda Mahto&bartektartanus:谢谢您的帮助!@科多里米法:谢谢你让我知道你的拙见。
require(stringi)
stri_sub(mydf$date, from=-4)
## [1] "2001" "2003" "2004" "2001" "2003"