R date.frame 显示日期格式与设置的不一样
R date.frame show date format not as it has been set
大家早上好!
我在使用 R 和好书 R IN ACTION: Data analysis and graphics with R 时遇到了一些困难。搜索网络没有产生任何有价值的努力,也没有阅读 as.Date
的 'man' 页面。
问题
我在 R 中有这个输入:date <- c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")
然后用于创建一个名为 leadership 的 data.frame,如下所示:
manager <- c(1,2,3,4,5)
country <- c("US","US","UK","UK","UK")
gender <- c("M","F","F","M","F")
age <- c(32,45,25,39,99)
q1 <- c(5,3,3,3,2)
q2 <- c(4,5,5,3,2)
q3 <- c(5,2,5,4,1)
q4 <- c(5,5,5,NA,2)
q5 <- c(5,5,2,NA,1)
leadership <- data.frame(manager, date, country, gender, age, q1,q2,q3,q4,q5, stringsAsFactors=F)
如果我打印出来,我得到的是:
manager date country gender age q1 q2 q3 q4 q5
1 1 10/24/08 US M 32 5 4 5 5 5
2 2 10/28/08 US F 45 3 5 2 5 5
3 3 10/1/08 UK F 25 3 5 5 5 2
4 4 10/12/08 UK M 39 3 3 4 NA NA
5 5 5/1/09 UK F 99 2 2 1 2 1
和
str(leadership)
'data.frame': 5 obs. of 10 variables:
$ manager: num 1 2 3 4 5
$ date : chr "10/24/08" "10/28/08" "10/1/08" "10/12/08" ...
$ country: chr "US" "US" "UK" "UK" ...
$ gender : chr "M" "F" "F" "M" ...
$ age : num 32 45 25 39 99
$ q1 : num 5 3 3 3 2
$ q2 : num 4 5 5 3 2
$ q3 : num 5 2 5 4 1
$ q4 : num 5 5 5 NA 2
$ q5 : num 5 5 2 NA 1
然后我需要更改变量 日期 格式
leadership$date <- as.Date(leadership$date, format="%m/%d/%y")
leadership
manager date country gender age q1 q2 q3 q4 q5
1 1 2008-10-24 US M 32 5 4 5 5 5
2 2 2008-10-28 US F 45 3 5 2 5 5
3 3 2008-10-01 UK F 25 3 5 5 5 2
4 4 2008-10-12 UK M 39 3 3 4 NA NA
5 5 2009-05-01 UK F 99 2 2 1 2 1
现在我想,我的 data.frame 的 date 列是否以 italian 格式显示: day/month/year,比如(第一次观察)24/10/08。所以我发出以下命令:
format(leadership$date, "%d/%m/%y")
[1] "24/10/08" "28/10/08" "01/10/08" "12/10/08" "01/05/09"
如愿以偿。但是如果我再次打印 data.frame ,我得到的不是我想要的,即使 数据格式 should 已经正确设置:
leadership
manager date country gender age q1 q2 q3 q4 q5
1 1 2008-10-24 US M 32 5 4 5 5 5
2 2 2008-10-28 US F 45 3 5 2 5 5
3 3 2008-10-01 UK F 25 3 5 5 5 2
4 4 2008-10-12 UK M 39 3 3 4 NA NA
5 5 2009-05-01 UK F 99 2 2 1 2 1
str(leadership)
'data.frame': 5 obs. of 10 variables:
$ manager: num 1 2 3 4 5
$ date : Date, format: "2008-10-24" "2008-10-28" ...
$ country: chr "US" "US" "UK" "UK" ...
$ gender : chr "M" "F" "F" "M" ...
$ age : num 32 45 25 39 99
$ q1 : num 5 3 3 3 2
$ q2 : num 4 5 5 3 2
$ q3 : num 5 2 5 4 1
$ q4 : num 5 5 5 NA 2
$ q5 : num 5 5 2 NA 1
我真的不知道如何正确设置它。我的 locale
是:
Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=it_IT.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=it_IT.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=it_IT.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=it_IT.UTF-8;LC_IDENTIFICATION=C")
这里的时间格式已经在'italian-style'..
作为参考,我是 运行 Ubuntu 16.04.2 LTS 和
R version 3.3.3 (2017-03-06) -- "Another Canoe" Platform: x86_64-pc-linux-gnu (64-bit)
因此:如何修改 日期 列以按我的意愿显示?
提前致谢,抱歉我啰嗦了!干杯! =-P
您不会将计算出的数据分配回您的数据框,这就是它不会更改的原因。试试这个:
leadership$date <- format(leadership$date, "%d/%m/%y")
大家早上好!
我在使用 R 和好书 R IN ACTION: Data analysis and graphics with R 时遇到了一些困难。搜索网络没有产生任何有价值的努力,也没有阅读 as.Date
的 'man' 页面。
问题
我在 R 中有这个输入:date <- c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")
然后用于创建一个名为 leadership 的 data.frame,如下所示:
manager <- c(1,2,3,4,5)
country <- c("US","US","UK","UK","UK")
gender <- c("M","F","F","M","F")
age <- c(32,45,25,39,99)
q1 <- c(5,3,3,3,2)
q2 <- c(4,5,5,3,2)
q3 <- c(5,2,5,4,1)
q4 <- c(5,5,5,NA,2)
q5 <- c(5,5,2,NA,1)
leadership <- data.frame(manager, date, country, gender, age, q1,q2,q3,q4,q5, stringsAsFactors=F)
如果我打印出来,我得到的是:
manager date country gender age q1 q2 q3 q4 q5
1 1 10/24/08 US M 32 5 4 5 5 5
2 2 10/28/08 US F 45 3 5 2 5 5
3 3 10/1/08 UK F 25 3 5 5 5 2
4 4 10/12/08 UK M 39 3 3 4 NA NA
5 5 5/1/09 UK F 99 2 2 1 2 1
和
str(leadership)
'data.frame': 5 obs. of 10 variables:
$ manager: num 1 2 3 4 5
$ date : chr "10/24/08" "10/28/08" "10/1/08" "10/12/08" ...
$ country: chr "US" "US" "UK" "UK" ...
$ gender : chr "M" "F" "F" "M" ...
$ age : num 32 45 25 39 99
$ q1 : num 5 3 3 3 2
$ q2 : num 4 5 5 3 2
$ q3 : num 5 2 5 4 1
$ q4 : num 5 5 5 NA 2
$ q5 : num 5 5 2 NA 1
然后我需要更改变量 日期 格式
leadership$date <- as.Date(leadership$date, format="%m/%d/%y")
leadership
manager date country gender age q1 q2 q3 q4 q5
1 1 2008-10-24 US M 32 5 4 5 5 5
2 2 2008-10-28 US F 45 3 5 2 5 5
3 3 2008-10-01 UK F 25 3 5 5 5 2
4 4 2008-10-12 UK M 39 3 3 4 NA NA
5 5 2009-05-01 UK F 99 2 2 1 2 1
现在我想,我的 data.frame 的 date 列是否以 italian 格式显示: day/month/year,比如(第一次观察)24/10/08。所以我发出以下命令:
format(leadership$date, "%d/%m/%y")
[1] "24/10/08" "28/10/08" "01/10/08" "12/10/08" "01/05/09"
如愿以偿。但是如果我再次打印 data.frame ,我得到的不是我想要的,即使 数据格式 should 已经正确设置:
leadership
manager date country gender age q1 q2 q3 q4 q5
1 1 2008-10-24 US M 32 5 4 5 5 5
2 2 2008-10-28 US F 45 3 5 2 5 5
3 3 2008-10-01 UK F 25 3 5 5 5 2
4 4 2008-10-12 UK M 39 3 3 4 NA NA
5 5 2009-05-01 UK F 99 2 2 1 2 1
str(leadership)
'data.frame': 5 obs. of 10 variables:
$ manager: num 1 2 3 4 5
$ date : Date, format: "2008-10-24" "2008-10-28" ...
$ country: chr "US" "US" "UK" "UK" ...
$ gender : chr "M" "F" "F" "M" ...
$ age : num 32 45 25 39 99
$ q1 : num 5 3 3 3 2
$ q2 : num 4 5 5 3 2
$ q3 : num 5 2 5 4 1
$ q4 : num 5 5 5 NA 2
$ q5 : num 5 5 2 NA 1
我真的不知道如何正确设置它。我的 locale
是:
Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=it_IT.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=it_IT.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=it_IT.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=it_IT.UTF-8;LC_IDENTIFICATION=C")
这里的时间格式已经在'italian-style'..
作为参考,我是 运行 Ubuntu 16.04.2 LTS 和
R version 3.3.3 (2017-03-06) -- "Another Canoe" Platform: x86_64-pc-linux-gnu (64-bit)
因此:如何修改 日期 列以按我的意愿显示?
提前致谢,抱歉我啰嗦了!干杯! =-P
您不会将计算出的数据分配回您的数据框,这就是它不会更改的原因。试试这个:
leadership$date <- format(leadership$date, "%d/%m/%y")