无论R中的第三个变量,如何合并日期?

时间:2019-12-01 08:09:05

标签: r

以下是数据示例,

Month        Year     Tornado    Location
January      1998     3         Illinois
February     1998     2         Illinois
March        1998     5         Illinois
January      1998     1         Florida
January      2010     3         Illinois

这就是我想要的样子,

Date      Tornado
1998-01   4
1998-02   2
1998-03   5
2010-01   3

因此,我想将“年”和“月”合并到一个新的列中。位置无关紧要,我想知道1998年1月等的龙卷风总数。 我有以下代码,但不知道如何更改它以合并我想要的两个变量,或者这是否甚至是我尝试执行的正确代码。

mydata$Date <- format(as.Date(mydata$month), "%m-%Y")

实际数据集太大,无法手动修复。我基本上是试图将这些数据转换为时间序列数据。

3 个答案:

答案 0 :(得分:0)

您需要先进行一些数据转换,然后再应用How to sum a variable by group

aggregate(Tornado~Date, transform(df, Date = format(as.Date(paste(Month,Year,"01"),
                        "%B %Y %d"), "%Y-%m")), sum)

#     Date Tornado
#1 1998-01       4
#2 1998-02       2
#3 1998-03       5
#4 2010-01       3

数据

df <- structure(list(Month = structure(c(2L, 1L, 3L, 2L, 2L), 
.Label = c("February", "January", "March"), class = "factor"), 
Year = c(1998L, 1998L,1998L, 1998L, 2010L), 
Tornado = c(3L, 2L, 5L, 1L, 3L), Location = structure(c(2L, 
2L, 2L, 1L, 2L), .Label = c("Florida", "Illinois"), class = "factor")), 
class = "data.frame", row.names = c(NA, -5L))

答案 1 :(得分:0)

首先,我将Month和Year合并为一个名为Date的变量,将适当的格式与zoo软件包一起使用,然后按Date将结果分组。

output

答案 2 :(得分:0)

如果一天没关系,您可以这样做:

2.00