2017-08-15 26 views
0

我有一個數據幀,其中包含250列日期和時間以字符格式,除了包含員工ID的列1以外。我如何轉換除第一列以日期格式的所有列。將數據幀轉換爲日期格式

1 1/5/2015 17:20 1/6/2015 17:19 1/7/2015 16:34 1/8/2015 17:08 
2 1/2/2015 18:22 1/5/2015 17:48 NA    1/7/2015 17:09 
3 1/2/2015 16:59 1/5/2015 17:06 1/6/2015 16:38 1/7/2015 16:33 
4 1/2/2015 17:25 1/5/2015 17:14 1/6/2015 17:07 1/7/2015 16:32 
5 1/2/2015 18:31 1/5/2015 17:49 1/6/2015 17:26 1/7/2015 17:37 
6 1/2/2015 20:29 1/5/2015 20:57 1/6/2015 21:06 1/7/2015 20:36 

以上日期和時間員工是字符格式。

試圖這樣做 parse_date_time(df[,-1],"ymd_HMS")parse_date_time(df[,2:250],"ymd_HMS")

但同樣是行不通的。但是,雖然只指定了一列,但語法正在工作。實際上,通過單獨指定每列來做250個代碼是不好的編碼。

回答

0

應用strtime函數將您的字符值轉換爲日期時間值。

df[,2:250] <- as.data.frame(lapply(df[,2:250], strptime, format="%Y-%m-%d %H:%M:%S")) 

df[,2:250]將僅列你有興趣。

格式format="%Y-%m-%d %H:%M:%S"描述你的角色條目的格式。你可以看到這些字母的意思是here

+0

謝謝。這工作。我只需要稍微修改語法爲df [,2:250] < - as.data.frame(lapply(df [,2:250],strptime,format =「%Y-%m-%d%H: %M:%S「)) –

+0

@VikramRS我已經相應地改變了它 – user3507584