2017-04-04 1 views
0

내 데이터 프레임은 다음과 같습니다변환 계수 날짜 컬럼에

x=structure(list(V1 = structure(c(33L, 35L, 36L, 37L, 39L, 4L, 
6L, 7L, 8L, 10L, 14L, 16L, 18L, 19L, 21L, 25L, 27L, 28L, 29L, 
30L, 1L, 17L, 31L, 32L, 34L, 38L, 40L, 2L, 3L, 5L, 9L, 11L, 12L, 
13L, 15L, 20L, 22L, 23L, 24L, 26L), .Label = c("1-Feb-71", "10-Feb-71", 
"11-Feb-71", "11-Jan-71", "12-Feb-71", "12-Jan-71", "13-Jan-71", 
"14-Jan-71", "15-Feb-71", "15-Jan-71", "16-Feb-71", "17-Feb-71", 
"18-Feb-71", "18-Jan-71", "19-Feb-71", "19-Jan-71", "2-Feb-71", 
"20-Jan-71", "21-Jan-71", "22-Feb-71", "22-Jan-71", "23-Feb-71", 
"24-Feb-71", "25-Feb-71", "25-Jan-71", "26-Feb-71", "26-Jan-71", 
"27-Jan-71", "28-Jan-71", "29-Jan-71", "3-Feb-71", "4-Feb-71", 
"4-Jan-71", "5-Feb-71", "5-Jan-71", "6-Jan-71", "7-Jan-71", "8-Feb-71", 
"8-Jan-71", "9-Feb-71"), class = "factor"), V2 = structure(c(1L, 
15L, 2L, 4L, 3L, 5L, 10L, 5L, 7L, 12L, 8L, 16L, 16L, 22L, 16L, 
19L, 22L, 12L, 17L, 23L, 24L, 24L, 21L, 17L, 19L, 16L, 6L, 11L, 
9L, 25L, 25L, 8L, 5L, 13L, 20L, 18L, 16L, 13L, 12L, 14L), .Label = c("7.1359", 
"7.1367", "7.1382", "7.1386", "7.1390", "7.1397", "7.1403", "7.1406", 
"7.1410", "7.1411", "7.1412", "7.1414", "7.1418", "7.1420", "7.1422", 
"7.1429", "7.1431", "7.1434", "7.1435", "7.1437", "7.1439", "7.1443", 
"7.1445", "7.1465", "ND"), class = "factor")), .Names = c("V1", 
"V2"), class = "data.frame", row.names = c(NA, -40L)) 

내가 날짜에 열 V1을 변환하려고하지만 작동하지 않습니다. 필자는 몇몇 주제를 찾고 있었지만 그저 작동하지 않습니다.

이 내 코드 :

x$V1 <- as.Date(x$V1, format="%d-%b-%y") 

은 V1 열의 일부 행에 대한 아니라 다른 사람을 위해 작동합니다.

어떤 도움이 필요합니까?

+0

반환하는 행은 어느 것입니까? – xraynaud

답변

2

내 버전이 R 인 경우 예제의 전환율은 1 월에만 적용되고 2 월에는 적용되지 않습니다. 나는 그것이 언어와 관련이 있다고 생각한다. 예를 들어, 프랑스어에서는 2 월이 fév로 코드화되어 있으므로 Feb가 인식되지 않습니다. 내가 한 번 :

x$V1=gsub("Feb", "fév", x$V1) 

그것은 효과가있다. 아마도 R 버전이 사용하는 언어에 달려 있습니다.

+0

데이터를 변경하는 대신 R locale을 변경할 수 있습니다.'loc <- Sys.getlocale ("LC_TIME")'로켈을 저장하려면,'Sys.setlocale ("LC_TIME", "C")'C 로케일로 전환하십시오 ,'x $ V1 <- as.Date (x $ V1, format = "% d- % b- % y")'와'Sys.getlocale (loc)'을 포함한다. – xraynaud

+0

복잡합니다. 나는 내 언어와 작품으로 바꾼다. 이제는 모든 달 동안 그것이 작동하는지보기 위해 바뀔 것입니다. 감사!! –

+0

@xraynaud 제안에 감사드립니다! 되돌리려면 마지막에 Sys.setlocale ("LC_TIME", loc)을 사용하면 안됩니까? OP로 : 분석 할 로캘을 변경 한 다음 변경해야 할 데이터가 많은 경우 xraynaud의 설명에서 언급 한대로 원래대로 되돌릴 수 있습니다. – Lamia