dplyr에서 날짜 및 시간 부분 집합

iHermes

나는 데이터 세트가 있는데, 평일과 주말이 러시아워에 충돌을 일으키고 싶습니다. (시뮬레이션 데이터입니다)

data11 <-  structure(list(dow = structure(c(6L, 4L, 2L, 7L, 5L, 6L), .Label = c("1", "2", "3", "4", "5", "6", "1"), class = "factor"), 
           time = c(0L, 1655L, 53L, 447L, 2000L, 1224L), sun1 = c(0, 0, 0, 0, 0, 0), sun2 = c(0, 0, 0, 0, 0, 0), sun = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 6L), class = "data.frame")

나는 이것을 아침 (1)과 밤 (2) 러시아워 등 (0)을 만드는 데 사용했습니다. 그러나 여기에는 말이되지 않는 주말도 포함됩니다.

data12=data11%>%mutate(crstime1=ifelse(630<time & time<830,1,0))%>%
          mutate(crstime2=ifelse(1650<time & time<1830,2,0))
data12$crstime3=(data12$crstime1+data12$crstime2)
table(data12$crstime3)
 0  1  2 
86  7  7 

주말에 다른 시간을 사용하고 싶습니다 (요일 (다우) = 6 및 7). 이런 코드로 할 수 있지만 고문이 될 것입니다.

> data11=data11%>%mutate(sun1=ifelse(dow=="7" & 1100<time & time<1259,1,0))%>%
+   mutate(sun2=ifelse(dow=="7"& 1800<time & time<2059,2,0))
> data11$sun=(data11$sun1+data11$sun2)
> table(data11$sun)

 0  1  2 
96  2  2 
> dplyr::filter(data11,dow=="7")
   dow time sun1 sun2 sun
1    7  447    0    0   0
2    7 1751    0    0   0
3    7  330    0    0   0
4    7    0    0    0   0
5    7  216    0    0   0
6    7 1256    1    0   1
7    7    0    0    0   0
8    7 2032    0    2   2
9    7 1213    1    0   1
10   7 2030    0    2   2
11   7  323    0    0   0
12   7  300    0    0   0
13   7  843    0    0   0
14   7   53    0    0   0

내 마지막 질문은 시간을 시간 객체로 변환 할 수 없다는 것입니다. 그것은 정수이고 완벽하게 작동하지만 방법을 배우고 싶습니다. 윤활제를 시도했지만 실패했습니다.

> data11$dow
  [1] 6 4 2 7 5 3 1 5 1 3 7 4 1 6 3 3 5 3 7 3 3 6 2 1 2 3 6 2 6 7 6 7 6 7 6 7 4 2 1 7 6 1 2 5 1 1 5 7 6 3 4 1 6 7 5 6 6 6 6 4 6 3 6 3
 [65] 3 5 2 1 2 3 5 4 1 4 1 7 5 7 1 2 6 2 4 5 1 5 2 2 2 1 4 6 7 4 5 1 4 5 6 7
Levels: 1 2 3 4 5 6 7
> data11$time
  [1] 2203 1632 2115  447 2000 1424   30 1324  723 2105 1751  743 1854 1000 1327 1105  135 1815  330 1845 1546 1752  936 1643 1410
 [26] 1448 1630  942 2145    0 1500  216 1456 1256 1236    0 2037 1640    0 2032 1715  801 1219 2140   25  318 2234 1213 2230 2024
 [51] 2327 2048  315 2030 1830 2148  317 1338 2233 2348  220 1746 1334 2006  829 1345 2004 1907 2004 1200 1010 2030  954  809 1502
 [76]  323 1904  300 1310 1837  131 1520  820 1313 1529 1859 1600 1105 1821 1229 2052 1852  843  759 1609 1435 1722 1934 1225   53
A. 술 리만

나는 당신이 원하는 것을 올바르게 이해하고 있는지 확실하지 않지만 여기에 시도해보십시오. 정의를 time사용하여 올바른 형식 stringr::str_padlubridate::hm다음 정상을dplyr::case_when

library(dplyr)
library(lubridate)
data11 %>% mutate(time1 = stringr::str_pad(time, side="left", pad = "0", width = 4), 
                  time2 = hm(paste0(substr(time1,1,2),':',substr(time1,3,4))),
                  crstime = case_when(!dow %in% c(6,7) & time2 > hm("06:30") & time2 < hm("08:30") ~ 1,
                                      !dow %in% c(6,7) & time2 > hm("16:50") & time2 < hm("18:30") ~ 2,
                                      dow %in% c(6,7) & time2 > hm("11:00") & time2 < hm("12:59") ~ 3,
                                      dow %in% c(6,7) & time2 > hm("18:00") & time2 < hm("20:59") ~ 4,
                                      TRUE ~ 0))

  dow time sun1 sun2 sun time1      time2 crstime
1   6    0    0    0   0  0000         0S       0
2   4 1655    0    0   0  1655 16H 55M 0S       2
3   2   53    0    0   0  0053     53M 0S       0
4   1  447    0    0   0  0447  4H 47M 0S       0
5   5 2000    0    0   0  2000  20H 0M 0S       0
6   6 1224    0    0   0  1224 12H 24M 0S       3

추신 : data11모든 가능성 / 조합을 포함하도록 업데이트 했습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ping 출력 부분 옆에 시간 및 날짜 표시

분류에서Dev

날짜 개체에 요일 및 시간 부분 추가

분류에서Dev

내 PC는 Windows 7에서 재부팅 시간 설정 날짜 및 시간에서 항상 경고합니다.

분류에서Dev

내 PC는 Windows 7에서 재부팅 시간 설정 날짜 및 시간에서 항상 경고합니다.

분류에서Dev

시간 축의 날짜 개체에 시간 및 분 추가

분류에서Dev

Google Analytics API에는 정확한 날짜, 시간 및 분이 필요합니다.

분류에서Dev

xlsx 가져 오기에서 날짜 및 시간 구문 분석

분류에서Dev

SELECT 쿼리에서 SQL Server의 날짜 및 시간 결합

분류에서Dev

SELECT 쿼리에서 SQL Server의 날짜 및 시간 결합

분류에서Dev

날짜-시간 열을 날짜 및 시간 변수로 분할

분류에서Dev

날짜 및 시간 편집에 문제가 있습니다.

분류에서Dev

날짜 및 시간에 대한 혼합 형식 및 언어

분류에서Dev

날짜 및 시간에 대한 혼합 형식 및 언어

분류에서Dev

두 요인 변수에 대한 날짜 및 값을 포함하는 여러 조건으로 데이터 프레임을 부분 집합시키는 방법

분류에서Dev

조건에 따라 데이터 부분 집합 및 이름 변경, Dplyr 내에서 기간 찾기

분류에서Dev

UTC 날짜 및 시간에서 현지 날짜 및 시간으로 날짜 및 시간 표시

분류에서Dev

날짜 및 시간 차이 (분)

분류에서Dev

R에서 날짜 및 시간 추출

분류에서Dev

C #에서 날짜 및 시간 조인

분류에서Dev

R에서 날짜 및 시간 조작

분류에서Dev

Renjin에서 날짜 및 시간 작업

분류에서Dev

날짜 시간 및 범위에 데이터 프레임 병합

분류에서Dev

mysqli datetime 필드에 대한 날짜 및 시간 변수 결합

분류에서Dev

출력 txt 파일의 각 줄 시작 부분에 날짜 및 시간을 추가하는 배치 파일

분류에서Dev

날짜 및 시간 합계 및 날짜 차이 찾기

분류에서Dev

datetimepicker에 날짜 및 시간 표시

분류에서Dev

R에서 15 분 단위로 큰 날짜 / 시간 데이터 집합 필터링

분류에서Dev

팬더에서 특정 날짜 및 시간 순서 구문 분석

분류에서Dev

Talend 날짜 및 시간 결합

Related 관련 기사

  1. 1

    Ping 출력 부분 옆에 시간 및 날짜 표시

  2. 2

    날짜 개체에 요일 및 시간 부분 추가

  3. 3

    내 PC는 Windows 7에서 재부팅 시간 설정 날짜 및 시간에서 항상 경고합니다.

  4. 4

    내 PC는 Windows 7에서 재부팅 시간 설정 날짜 및 시간에서 항상 경고합니다.

  5. 5

    시간 축의 날짜 개체에 시간 및 분 추가

  6. 6

    Google Analytics API에는 정확한 날짜, 시간 및 분이 필요합니다.

  7. 7

    xlsx 가져 오기에서 날짜 및 시간 구문 분석

  8. 8

    SELECT 쿼리에서 SQL Server의 날짜 및 시간 결합

  9. 9

    SELECT 쿼리에서 SQL Server의 날짜 및 시간 결합

  10. 10

    날짜-시간 열을 날짜 및 시간 변수로 분할

  11. 11

    날짜 및 시간 편집에 문제가 있습니다.

  12. 12

    날짜 및 시간에 대한 혼합 형식 및 언어

  13. 13

    날짜 및 시간에 대한 혼합 형식 및 언어

  14. 14

    두 요인 변수에 대한 날짜 및 값을 포함하는 여러 조건으로 데이터 프레임을 부분 집합시키는 방법

  15. 15

    조건에 따라 데이터 부분 집합 및 이름 변경, Dplyr 내에서 기간 찾기

  16. 16

    UTC 날짜 및 시간에서 현지 날짜 및 시간으로 날짜 및 시간 표시

  17. 17

    날짜 및 시간 차이 (분)

  18. 18

    R에서 날짜 및 시간 추출

  19. 19

    C #에서 날짜 및 시간 조인

  20. 20

    R에서 날짜 및 시간 조작

  21. 21

    Renjin에서 날짜 및 시간 작업

  22. 22

    날짜 시간 및 범위에 데이터 프레임 병합

  23. 23

    mysqli datetime 필드에 대한 날짜 및 시간 변수 결합

  24. 24

    출력 txt 파일의 각 줄 시작 부분에 날짜 및 시간을 추가하는 배치 파일

  25. 25

    날짜 및 시간 합계 및 날짜 차이 찾기

  26. 26

    datetimepicker에 날짜 및 시간 표시

  27. 27

    R에서 15 분 단위로 큰 날짜 / 시간 데이터 집합 필터링

  28. 28

    팬더에서 특정 날짜 및 시간 순서 구문 분석

  29. 29

    Talend 날짜 및 시간 결합

뜨겁다태그

보관