当我在R中读取excel文件时,出生日期列的一些值被转换为5位整数(例如第3行(。我猜它们代表了天数?
在这里,我想将"DOB"列中的日期和整数都转换为年(即年龄(。我使用的是eeptools包中的age_calc函数。因此,我希望在将列中的所有值转换为正确的日期方面得到一些帮助,这样我就可以使用age_calc函数而不会返回错误。提前谢谢。
df1[1:5,1:5]:
first_name last_name gender past_3_years_bike_related_purchases DOB
<chr> <chr> <chr> <chr> <chr>
1 Chickie Brister Male 86 1957-07-12
2 Morly Genery Male 69 1970-03-22
3 Ardelis Forrester Female 10 27269
4 Lucine Stutt Female 64 1979-01-28
5 Melinda Hadlee Female 34 1965-09-21
您可以单独处理这些日期。
#Index which have all numbers in it.
inds <- grepl('^\d+$', df1$DOB)
#Create an empty column
df1$dob <- as.Date(NA)
#Change normal dates to date
df1$dob[!inds] <- as.Date(df1$DOB[!inds])
#Change excel date to dates.
df1$dob[inds] <- as.Date(as.numeric(df1$DOB[inds]), origin = "1899-12-30")
df1
# first_name last_name gender DOB dob
#1 Chickie Brister Male 1957-07-12 1957-07-12
#2 Morly Genery Male 1970-03-22 1970-03-22
#3 Ardelis Forrester Female 27269 1974-08-28
#4 Lucine Stutt Female 1979-01-28 1979-01-28
#5 Melinda Hadlee Female 1965-09-21 1965-09-21