操纵日期格式
Manipulate date format
合并数据集时,有多种日期格式无法加入这些数据集。
我需要以年为单位的日期值,例如 2004、2005、1996、1987。
但它们有不同的格式 int,I_chr,dbl.
我用了各种方法操作都失败了。有谁知道如何解决这个问题?
数据样本1为
glimpse(ARTD_data_reshaped)
Rows: 9,606
Columns: 12
$ country chr "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afg~
$ year I chr 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1~
$ combined_regime chr "Monarchy", "Monarchy", "Monarchy", "Monarchy", "Monarchy", "Mon~
$ kailitz_tri int 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
数据样本2为
glimpse(FH_data_2_reshaped_new)
Rows: 621
Columns: 3
$ country chr "Abkhazia", "Abkhazia", "Abkhazia", "Afghanistan", "Afghanistan", "Afg~
$ year int 2003, 2004, 2005, 2003, 2004, 2005, 2003, 2004, 2005, 2003, 2004, 2005~
$ pr_rating chr "9", "9", "9", "8", "9", "13", "26", "26", "26", "11", "11", "10", "39~
1.方法一
FH_data_2_reshaped_new <- read.csv(file = "FH_data_2_reshaped.csv") %>%
select(country, year, pr_rating) %>%
as.POSIXct(year)
Error in as.POSIXct.default(., year) : 不知如何將 '.' 轉換成 “POSIXct” 類別
2。方法二
FH_data_2_reshaped_new <- read.csv(file = "FH_data_2_reshaped.csv") %>%
select(country, year, pr_rating) %>%
mutate(year = lubridate::year(year))
Error: Problem with mutate()
column year
.
i year = lubridate::year(year)
.
x 'origin' 一定得給值
有多种方法可以做到这一点。最好的方法之一是使用基础 R.
中的 as.Date
注:假设数据框的名字是df
.
代码将如下所示:
df$year <- as.Date(df$year, format = "%Y")
这会将年份列从数据框中转换为 class date
。虽然它会将当前日期和月份附加到年份。即年份值看起来将转换为 yyyy-mm-dd
格式,其中 mm
和 dd
是当前月份和日期。
如果您不需要月份和日期部分,您可以使用 lubridate
库。
library(lubridate)
df$year <- as.Date(as.character(df$year), format = "%Y")
df$year <- year(df$year)
它会给你唯一的年份部分。但是,请记住它将是 class numeric
而不是 Date
.
合并数据集时,有多种日期格式无法加入这些数据集。
我需要以年为单位的日期值,例如 2004、2005、1996、1987。
但它们有不同的格式 int,I_chr,dbl.
我用了各种方法操作都失败了。有谁知道如何解决这个问题?
数据样本1为
glimpse(ARTD_data_reshaped)
Rows: 9,606
Columns: 12
$ country chr "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afg~
$ year I chr 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1~
$ combined_regime chr "Monarchy", "Monarchy", "Monarchy", "Monarchy", "Monarchy", "Mon~
$ kailitz_tri int 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
数据样本2为
glimpse(FH_data_2_reshaped_new)
Rows: 621
Columns: 3
$ country chr "Abkhazia", "Abkhazia", "Abkhazia", "Afghanistan", "Afghanistan", "Afg~
$ year int 2003, 2004, 2005, 2003, 2004, 2005, 2003, 2004, 2005, 2003, 2004, 2005~
$ pr_rating chr "9", "9", "9", "8", "9", "13", "26", "26", "26", "11", "11", "10", "39~
1.方法一
FH_data_2_reshaped_new <- read.csv(file = "FH_data_2_reshaped.csv") %>%
select(country, year, pr_rating) %>%
as.POSIXct(year)
Error in as.POSIXct.default(., year) : 不知如何將 '.' 轉換成 “POSIXct” 類別
2。方法二
FH_data_2_reshaped_new <- read.csv(file = "FH_data_2_reshaped.csv") %>%
select(country, year, pr_rating) %>%
mutate(year = lubridate::year(year))
Error: Problem with
mutate()
columnyear
. iyear = lubridate::year(year)
. x 'origin' 一定得給值
有多种方法可以做到这一点。最好的方法之一是使用基础 R.
中的as.Date
注:假设数据框的名字是df
.
代码将如下所示:
df$year <- as.Date(df$year, format = "%Y")
这会将年份列从数据框中转换为 class date
。虽然它会将当前日期和月份附加到年份。即年份值看起来将转换为 yyyy-mm-dd
格式,其中 mm
和 dd
是当前月份和日期。
如果您不需要月份和日期部分,您可以使用 lubridate
库。
library(lubridate)
df$year <- as.Date(as.character(df$year), format = "%Y")
df$year <- year(df$year)
它会给你唯一的年份部分。但是,请记住它将是 class numeric
而不是 Date
.