2013-06-09 5 views
3

데이터 프레임이 R이고 "mydata"로 표시됩니다. 첫 번째 열 labled "ts"에는 유닉스 타임 스탬프 필드가 있습니다. 이 필드를 요일로 변환하고 싶습니다.유닉스 타임 스탬프 열을 요일로 변환 R

내가 strptime 및 POSIXct 기능을 사용하여 시도했지만 내가 제대로 실행하는 방법을 잘 모르겠어요 :

"Error in as.character(x) : cannot coerce type 'closure' to vector of type 'character'"

나는 또한 방금 시도 :

> strptime(ts, "%w") 

이 오류를 --Returned POSIXct을 사용하여 사람이 읽을 수있는 형식으로 변환 :

as.Date(as.POSIXct(ts, origin="1970-01-01")) 

-이 오류로 다시 표시 :

"Error in as.POSIXct.default(ts, origin = "1970-01-01") : do not know how to convert 'ts' to class “POSIXct”"

업데이트 : 다음

> mydata$ts <- as.Date(mydata$ts) 

> mydata$ts <- strftime(mydata$ts , "%w") 
+1

가'dput'를 사용하여 샘플 데이터를 포함 : 문자가 아닌 숫자로 출력을 원하는 경우

wday <- function(x) as.POSIXlt(x)$wday wday(Sys.time()) # Today is Sunday ## [1] 0 

는 또한 weekdays 기능이있다. – Thomas

+1

'ts'는 시계열 객체를 생성하는 함수입니다. 아마도 당신은'strptime (mydata $ ts, "% w")' – James

+0

을 쓰려고했는데 다음과 같이 10k 줄을 출력했습니다 : _ [9997] "2013-06-09" "2013-06-09" " 2013-06-09 "_하지만 데이터 프레임의 실제 내용이 변경된 것처럼 보이지는 않습니다. – pas

답변

7

을 필요가 없습니다 POSIXlt가 직접이 줄 때 strftime 모든 길을 가야하고, 다음은 나를 위해 일하는 결국 무엇인가 strftimeas.POSIXlt입니다.

weekdays(Sys.time()) 
## [1] "Sunday"