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

时间:2017-04-11 14:12:01

标签: r date-format as.date

祝大家好! 我和R有点挣扎和好书 R IN ACTION:数据分析和图形与R 。搜索网络并没有带来任何有价值的努力,也没有阅读“男人”。 import sys print sys.path#this will give you list of path where python searches for libraries 的页面。

问题

我在R:as.Date

中输入了这个输入

然后用于创建名为 leadership 的data.frame,如下所示:

date <- c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")

如果我打印出来,我得到的是:

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

然后我需要更改变量 date 格式

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

现在我想,我的data.frame的 date 列是以意大利语格式显示的:日/月/年,例如(第一次观察) 24/10/08 。所以我发出以下命令:

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,即使数据格式 已正确设置,我得到的并不是我想要的:

format(leadership$date, "%d/%m/%y")
[1] "24/10/08" "28/10/08" "01/10/08" "12/10/08" "01/05/09"

我真的不知道如何正确设置它。我的 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

此处的时间格式已经采用了意大利风格的&#39; ..

作为参考,我正在运行Ubuntu 16.04.2 LTS和 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")

因此:我如何修改 date 列以显示为我喜欢?

提前致谢,对不起我这么啰嗦!干杯! = -P

1 个答案:

答案 0 :(得分:0)

您不会将计算出的数据分配回数据框,这就是它不会改变的原因。试试这个:

leadership$date <- format(leadership$date, "%d/%m/%y")