Генерация диапазона между в столбце Dataframe - PullRequest
0 голосов
/ 20 февраля 2020

Я генерирую фрейм данных в R studio. с 4 столбцами ITA, Вероятность, Совокупная вероятность и Диапазон

Мой код работает хорошо

InterArrivalInput <- list(InterArrival = c(1,2,3,4),
                      Probability = c(0.25,0.40,0.20,0.15))
countDF <- function(input) {


Cumulative <- cumsum(input$Probability)
Range <- (Cumulative * 100) 

df <- data.frame(InterArrivals = input$InterArrival,
               Probability = input$Probability,
               Cumulative = Cumulative,
               Range = Range
}

В настоящее время его расчетный диапазон, например, 25 для 0,25 совокупной вероятности.

Commulative | Range
0.25        | 25
0.65        | 55

Как сгенерировать столбец диапазона как

Commulative | Range
0.25        | 0 - 25
0.65        | 26 - 55

Я начинаю изучать язык R. Не знаю, возможно ли это или нет. Thankyou

1 Ответ

0 голосов
/ 20 февраля 2020
Range <- c(25, 55)
mapply(paste, c(1, 1 + head(Range, n=-1)), Range, sep = " - ")
# [1] "1 - 25"  "26 - 55"

head(..., n=-1) извлекает все, кроме последних 1 записей (таким образом, head(..., n=-3) извлекает все, кроме последних 3).

mapply - это "архивируемая" версия применить функции, где, если бы я развернул его и показал, как функция (первый аргумент) вызывается повторно, это выглядело бы так:

c(1, 1 + head(Range, n=-1))
# [1]  1 26
Range
# [1] 25 55
paste(1, 25, sep = " - ")
# [1] "1 - 25"
paste(26, 55, sep = " - ")
# [1] "26 - 55"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...