我在R中有一个数据帧,其中有几个变量,现在关注的是两个变量,title和Date。我写下了与真实数据帧相似的短数据
Title Date
Veterans, Sacrame 1997
Action Newsmaker 2005
New Tri-Cable 1990 mar
EFEST June 16, 1987 28494
The Inhuman Perception: what we do 1999 june
New Tri-Cable 2003 july/august
Interviews Concerning His/her 1991-1992
Festival EFEST June 6, 1997 83443
Intervention of the people Undated
我想要的是创建一个新的可变年份,我们只有年份(没有日期/月或类似的东西(。我可以从日期格式或完全相似的文本格式中提取年份,但这里不同,因为标题很复杂,每一行都不相同(单词/字母不相等(。我只是想知道有什么简单的方法可以在我想要的r-studio中创建一个可变的"年"。如果是某种日期格式,我可以从日期变量中提取年份。然而,在一些数据中,日期像83443,但我在标题中看到了年份,但由于这种格式的庞大数据集,无法手动提取年份。
使用mdy转换为Date类,然后使用year提取年份。
library(lubridate)
year(mdy(dat1$Title, quiet = TRUE))
## [1] NA NA NA 1987 NA NA NA 1997 NA
备注
可复制形式的数据:
Lines <- "Title Date
Veterans, Sacrame 1997
Action Newsmaker 2005
New Tri-Cable 1990 mar
EFEST June 16, 1987 28494
The Inhuman Perception: what we do 1999 june
New Tri-Cable 2003 july/august
Interviews Concerning His/her 1991-1992
Festival EFEST June 6, 1997 83443
Intervention of the people Undated"
L <- readLines(textConnection(Lines))
dat1 <- read.csv(text = sub(" +", ";", trimws(L)), sep = ";")