Условно добавить следующий элемент вектора к предыдущему элементу - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть вектор, имеющий несколько значений.Если элемент и следующий не имеют точки, я хочу добавить следующий элемент к предыдущему с точкой.Но добавленные элементы больше не должны присутствовать в векторе

a = c("135","00","85","6","0.00","6","0.00","0.00","85","61","0.00")

Я хочу, чтобы результат был

"135.00","85.6","0.00","6","0.00","0.00","85.61","0.00"

1 Ответ

0 голосов
/ 25 апреля 2018

Возможно, не самое элегантное, но здесь решение с while конструкцией:

a <- c("135","00","85","6","0.00","6","0.00","0.00","85","61","0.00")

result <- character()
while(length(a) > 0) {

    ## pop first item from vector
    item <- a[1]
    a <- a[-1]

    ## if item contains dots, add to results
    if (grepl("\\.", item)) {
        result <- c(result, item)
    } else {        
        ## Otherise check if next item contains dot
        if (! grepl("\\.", a[1])) {
            ## if not, combine current and next item
            result <- c(result, paste(item, a[1], sep='.'))
            a <- a[-1]
        }
        else {
            ## otherwise return current item
            result <- c(result, item)
        }
    }    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...