У меня есть простой фрейм данных, скажем:
dd <- data.frame(id = letters[1:4], v1 = c(0.3,0.1,0.7,1.3))
dd
id v1
1 a 0.3
2 b 0.1
3 c 0.7
4 d 1.3
Для каждой строки этого фрейма данных я хочу «взорвать» его, добавив новую переменную, которая дает последовательность чисел. Мне это удалось, но мой код не идеален и едва ли подойдет:
dd %>%
mutate("0"=0,"5"=5,"10"=10) %>%
reshape2::melt(id.vars=c("id", "v1")) %>%
select(-variable)
id v1 value
1 a 0.3 0
2 b 0.1 0
3 c 0.7 0
4 d 1.3 0
5 a 0.3 5
6 b 0.1 5
7 c 0.7 5
8 d 1.3 5
9 a 0.3 10
10 b 0.1 10
11 c 0.7 10
12 d 1.3 10
Итак, в этом примере для каждой строки я добавляю столбец с именем value
, который имеет все три значения в пределах c(0,5,10)
Этот код не идеален, потому что фактическая последовательность, которую я хочу, в значительной степени 1:70
, и я не хочу писать все 70 новых переменных в моем mutate
вручную. Конечно, есть лучший способ сделать это, вы можете мне помочь?
Мне не нужно оставаться в dplyr
, но я хочу, чтобы я не мог передать свой код.
Спасибо