내가 원하는 사용 사례입니다 추정 여러 년 예를 들어 데이터 세트입니다 : 다음
myData <-
data.frame(
Date = 2011:2015
, Total = (1:5)*1200
)
, 나는 data.frame을 분할 Date
열 (이것은 연도가 고유 한 것으로 가정 함)에서 lapply
으로 반복하여 원하는 월간 값으로 수정 한 다음에서 bind_rows
과 함께 다시 꿰맬 수 있습니다(%>%
)이 작동하려면 dplyr
또는 magrittr
을로드해야합니다.
myData %>%
split(.$Date) %>%
lapply(function(x){
temp <- data.frame(
Date = as.Date(paste(x$Date
, formatC(1:12, width = 2, flag = "0")
, "01"
, sep = "-"))
, Total = x$Total/12
)
}) %>%
bind_rows()
이 코멘트에 제안, 당신은 달의 다른 수의 매년 분할해야
Date Total
1 2011-01-01 100
2 2011-02-01 100
3 2011-03-01 100
...
16 2012-04-01 200
17 2012-05-01 200
18 2012-06-01 200
...
29 2013-05-01 300
30 2013-06-01 300
31 2013-07-01 300
...
43 2014-07-01 400
44 2014-08-01 400
45 2014-09-01 400
...
58 2015-10-01 500
59 2015-11-01 500
60 2015-12-01 500
경우 (생략 된 행을 표시하기 위해 ...
를 사용하여, 메모를) 제공합니다, 나는를 만들 것 년 동안 지명 된 약수의 벡터. 여기에서는 n_distinct
에 dplyr
을 사용하고 일반 사례의 이름을 쉽게 지정하기 위해 magrittr
파이프를 사용하고 있습니다. 그런 다음, 추가/다른 연도의 항목 변경 : 위와 대신 12
의, 그리고
toDivide <-
rep(12, n_distinct(myData$Date)) %>%
setNames(sort(unique(myData$Date)))
toDivide["2016"] <- 9
를,이 벡터를 사용할 수 있습니다. 이 더불어 lapply
루프 내
Total = x$Total/12
을 :
Total = x$Total/toDivide[as.character(x$Date)]
을하고 대신 항상 똑같은로 나누어으로, 그 해에 대한 항목으로 분할한다 그래서,이를 교체합니다.
테이블에 제대로 넣지 않은 것에 대해 사과드립니다 ... Newcomer to stackoverflow. – CGermain
MySQL에 태그가 지정되었습니다. 데이터는 데이터베이스에서 파생됩니까? – Parfait