У меня есть большой набор данных, который имеет шаблон, похожий на dataPattern
ниже. Мне нужна помощь с кодом для создания desiredresult
набора данныхСоздание новых столбцов на основе шаблона
library(data.table)
V1 <- rep(c(rep("a", times = 2), letters[2:5],
rep("f", times = 2)), times = 2)
V2 <- c(c(c(0.24, 0.25), 2:5, c(0.95, 1.05)),
c(c(0.34, 0.35), 2:5, c(1.95, 2.05)))
(dataPattern <- data.table(V1, V2))
(desiredresult <- data.table(V1, V2, c(rep(c(0.24, 0.25), times = 4),
rep(c(0.34, 0.35), times = 4)),
c(rep(c(0.95, 1.05), times = 4),
rep(c(1.95, 2.05), times = 4))))
мне нужна помощь, чтобы создать столбец V3
в desiredresult
. Картина выглядит следующим образом:
если таковые V1 == "a"
затем V3 = V2
, если V1 != "a"
мы не повторить предыдущий соответствующий набор V2
значений до тех пор, новое значение a
достигается то новые значения V2
помещают в V3
и т.д. выше повторы для всех новых значений a
.
мне нужна ваша помощь с кодом, чтобы создать столбец V4
в desiredresult
, который похож на колонке V3
кроме он проверяет V1 == "f"
и помещает значения f
из V2
в V4
и повторяет его, если V1 != "f"
I попробовал:
rle(dataPattern$V1 == "a")
# Run Length Encoding
# lengths: int [1:4] 2 6 2 6
# values : logi [1:4] TRUE FALSE TRUE FALSE
последовательность где V1 != "a"
или V1 != "f"
оказывается равным числу FALSE
минус Номер TRUE
. Это сколько раз нужно каждый a
последовательности будет повторяться, пока новый a
не будет достигнут
Большого спасибо
Есть ли «f V1! =« A », мы повторяем предыдущий набор значений до тех пор, пока не будет достигнуто новое значение a, тогда новые значения V2 будут помещены в V3« действительно означает быть «f V1! =» A «мы повторяем предыдущий набор значений V1 до тех пор, пока не будет достигнуто новое значение a, а новые значения V2 будут помещены в V3»? –
Шон, вот что я имел в виду: если «a» находится в «V1», скопируйте значения V2 в «V3». Если «a» не найден в «V1», повторите вышеуказанные значения V2 до «V3» до тех пор, пока новое значение не будет найдено в «V1» –