R 如何将三个变量合并为一个变量,该变量表示由逗号分隔的合并变量?

R 如何将三个变量合并为一个变量,该变量表示由逗号分隔的合并变量?,r,variables,merge,R,Variables,Merge,我有三个变量:年、月和日。如何将它们合并到一个变量(“日期”)中,以使变量表示为: 年月日 提前感谢并致以最良好的问候 下面我们创建年-月-日字符串、yyyy-mm-dd字符串(除了一位数字的月和日被零填充到两位数字之外类似)和日期类。最后一个输出为yyyy-mm-dd,并且可以以字符串所不能的方式进行操作,例如,将一个添加到日期类对象中会给出第二天 首先,我们设置一些示例输入: year <- c(2017, 2015, 2014) month <- c(3, 1, 10) day

我有三个变量:年、月和日。如何将它们合并到一个变量(“日期”)中,以使变量表示为: 年月日


提前感谢并致以最良好的问候

下面我们创建年-月-日字符串、yyyy-mm-dd字符串(除了一位数字的月和日被零填充到两位数字之外类似)和日期类。最后一个输出为yyyy-mm-dd,并且可以以字符串所不能的方式进行操作,例如,将一个添加到日期类对象中会给出第二天

首先,我们设置一些示例输入:

year <- c(2017, 2015, 2014)
month <- c(3, 1, 10)
day <- c(15, 9, 25)
转换为日期类它在控制台上打印为yyyy-mm-dd。有两种选择:

as.Date(paste(year, month, day, sep = "-"))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"

as.Date(ISOdate(year, month, day))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"
as.character(as.Date(paste(year, month, day, sep = "-")))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"

sprintf("%d-%02d-%02d", year, month, day)
## [1] "2017-03-15" "2015-01-09" "2014-10-25"
转换为字符串yyyy-mm-dd在这种情况下,1位数的月份和日期被零填充为2个字符。两个备选方案:

as.Date(paste(year, month, day, sep = "-"))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"

as.Date(ISOdate(year, month, day))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"
as.character(as.Date(paste(year, month, day, sep = "-")))
## [1] "2017-03-15" "2015-01-09" "2014-10-25"

sprintf("%d-%02d-%02d", year, month, day)
## [1] "2017-03-15" "2015-01-09" "2014-10-25"

如何将三个变量合并为一个变量

考虑两种方法:

  • 旧校

  • 带有
    dplyr
    lubridate
    ,以及数据帧

  • 并考虑数据类型。你可以有:

  • 数字或字符
  • Date
    POSIXct
    最终类型
  • 老派方法 老派的方法很简单。我假设您正在使用向量或列表,但还不知道数据帧。让我们将数据强制转换为标准化、明确的格式,并连接数据

    > y <- 2012:2015
    > y
    [1] 2012 2013 2014 2015
    > m <- 1:4
    > m
    [1] 1 2 3 4
    > d <- 10:13
    > d
    [1] 10 11 12 13
    
    数据帧/Dplyr/Lubridate方式
    >测向
    年星期一
    1 2012   1  10
    2 2013   2  11
    3 2014   3  12
    
    4 2015 4 13
    您是否尝试过粘贴?请在您的问题中添加示例数据,其中包含最小的可重复示例,例如。g
    data
    tidyr::unite(df,“Date”,Y:D,sep=“-”)
    如果不想保留原始列