R date.frame显示日期格式不符合已设置

问题描述:

祝大家好! 我正在努力与R和好书R IN ACTION:数据分析和图形与R。搜索网络并没有带来任何有价值的努力,也没有阅读as.Date的'男人'页面。R date.frame显示日期格式不符合已设置

问题

我在读该输入:date <- c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")

,然后用于创建一个名为领导如下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的日期栏显示在意大利语格式:日/月/年等(第一次观察)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,我得到的是不是我想要的,即使数据格式应该已正确设置:

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") 
这里

时间格式已经在 '意大利风格' ..

仅供参考,我运行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") 
+0

哎唷!我感到伤心..花了几个小时寻找解决方案..当它很容易..我觉得这样一个疯狂的白痴..感谢回复! – Marc

+0

不客气!你会看到,它变得更容易 – FlorianGD