몇 년 동안 달 시작 시간과 달 종료 시간을 기록하는 데이터 프레임이 있습니다. 이 두 열에서 달 중간 시간을 계산하고 다음 코드를 사용하여 달 중간 시간 (mm)에서 날짜 정보를 제거하고 hh : mm 형식 만 남겼습니다.
diel$mm <- as.POSIXct((as.numeric(diel$`moonend date time`) + as.numeric(diel$`moonstart date time`)) / 2, origin = '1970-01-01')
#mm=moonlight midpoint
diel$mm <-strftime(diel$mm, tz = "UCT", format = "%H:%M")
#delete the date info on the moonlight midpoint column
그런 다음 달 중간 시간을 숫자 1-18로 다시 코딩하고 싶었습니다. 내 24 시간은 오전 9시 45 분에서 다음 날 오전 9시 45 분까지 분리됩니다. 예를 들어, 9:45에서 11:05는 "1"로, 11:05에서 12:25는 "2"로, ...., 8:25에서 9:45는 "18"로 코딩됩니다.
dplyr에서 case_when을 사용하여 시간 변수를 다시 코딩했습니다.
diel <- diel %>% mutate(mm = case_when(
mm > 9:45 & mm < 11:05 ~ "1",
mm > 11:05 & mm < 12:25 ~ "2",
mm > 12:25 & mm < 13:45 ~ "3",
mm > 13:45 & mm < 15:05 ~ "4",
mm > 15:05 & mm < 16:25 ~ "5",
mm > 16:25 & mm < 17:45 ~ "6",
mm >17:45 & mm < 19:05 ~ "7",
mm > 19:05 & mm < 20:25 ~ "8",
mm > 20:25 & mm < 21:45 ~ "9",
mm > 21:45 & mm < 23:05 ~ "10",
mm > 23:05 & mm < 0:25 ~ "11",
mm > 0:25 & mm < 1:45 ~ "12",
mm > 1:45 & mm < 3:05 ~ "13",
mm > 3:05 & mm < 4:25 ~ "14",
mm > 4:25 & mm < 5:45 ~ "15",
mm > 5:45 & mm < 7:05 ~ "16",
mm > 7:05 & mm < 8:25 ~ "17",
mm > 8:25 & mm < 9:45 ~ "18",
is.na(mm) ~ "na"))
# 달빛이없는 날이 있기 때문에 데이터 프레임에 nas가 있습니다.
이 case_when 코드를 완전히 이해하지 못했습니다. "~"number ""가 내가 다시 코딩하고 싶은 것처럼 보이지만 "~"앞의 코드는 저를 많이 혼란스럽게합니다. 결국이 코드는 작동하지 않았습니다. "~"이전 부분을 변경했을 때 다른 오류 메시지가 나타납니다.
내 코드 작성이 잘못되었는지 또는이 달의 중간 시간에 실제로 날짜 정보가 포함되어 있기 때문에 (날짜 정보를 제거했지만) 1-18로 다시 코딩 할 수 없습니다. 시간을 1-18로 기록 할 수있는 다른 방법이 있습니까? 누군가 이것을 도와 줄 수 있습니까? 감사합니다!
시간 형식이 올바르지 않습니다 (예 : 9:45). R 콘솔에 작성하면 9에서 45까지의 정수 시퀀스가 생성됩니다. 특정 문제에 적합한 시간 형식을 조사하십시오. 제안, R 콘솔에 help ( "DateTimeClasses")를 입력하여 날짜와 시간을 나타내는 몇 가지 중요한 클래스에 대한 문서를 읽으십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다