【问题标题】:Convert factor to date class for multiple columns将因子转换为多列的日期类
【发布时间】:2014-02-13 08:18:14
【问题描述】:

我的数据集中有 7 列。我想将 4 个变量(2 到 5 列)从因子转换为日期格式。我可以一次做一列,但我想知道是否有一个快捷方式可以将它们全部转换在一起。

目前我就是这样做的。

SampleData$column2<-as.Date(SampleData$column2,format="%Y/%m%/%d")
SampleData$column3<-as.Date(SampleData$column3,format="%Y/%m%/%d")
SampleData$column4<-as.Date(SampleData$column4,format="%Y/%m%/%d")
SampleData$column5<-as.Date(SampleData$column5,format="%Y/%m%/%d")

【问题讨论】:

  • 我会选择SampleData[, 2:5] &lt;- as.Date(sapply(SampleData[, 2:5], as.Date, format="%Y/%m%/%d"), origin="1970-01-01")as.Date() 包装器,因为 sapply 否则会输出数字。

标签: r


【解决方案1】:

鉴于你的日期格式,你可以试试这个:

# sample data
df <- data.frame(a = 1:2,
                 d1 = factor(c("2013/01/01", "2014/01/01")),
                 d2 = factor(c("2013/01/01", "2014/01/01")),
                 b = 3:4)

df[ , 2:3] <- lapply(df[ , 2:3], as.Date)

str(df)
# 'data.frame':  2 obs. of  4 variables:
# $ a : int  1 2
# $ d1: Date, format: "2013-01-01" "2014-01-01"
# $ d2: Date, format: "2013-01-01" "2014-01-01"
# $ b : int  3 4

【讨论】:

  • 这是使用的 SampleData[,2:5]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多