#r
#r
Вопрос:
У меня есть такой фрейм данных
node <- c("ABC_Amod_wdm-1/1/10/1","ABC_Amod_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1","ABC_Arvali_wdm-1/1/10/1")
activity <- c("LOSS_OF_MULTIPLEX_SECTION-OMS_A","LOSS_OF_MULTIPLEX_SECTION-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","LOSS_OF_SIGNAL-OTS","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","LOSS_OF_MULTIPLEX_SECTION-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A","UNDERLYING_RESOURCE_UNAVAILABLE-OMS_A")
time <- c("2020-05-09 04:50:42","2020-05-09 06:16:54","2020-05-09 09:30:49","2020-05-09 13:33:20","2020-05-10 20:01:10","2020-05-10 20:01:11","2020-05-10 20:35:24","2020-05-11 16:33:31","2020-05-16 13:40:29","2020-05-16 14:39:00","2020-05-16 15:12:52","2020-05-18 17:12:57")
df <- data.frame(node, activity, time)
df
Я попробовал этот код
library(dplyr)
x<-df %>%
arrange(node, activity) %>%
group_by(node) %>%
mutate(nextactivity = lead(activity)) %>%
ungroup %>%
dplyr::select(-time) %>%
na.omit()
но это не дает мне желаемого результата. все еще остаются n узлов, мне нужно n-1 узлов.
Комментарии:
1. Что именно у вас не работает? Когда я пытаюсь ответить на ваши новые данные, кажется, это работает. Можете ли вы показать, какой результат вы получаете и какой результат вы ожидаете?
2. да, он работает на R. но не на R cloud. ожидаемый результат — это когда мы запускаем этот код на выходе R
3. Вы назначили результат обратно объекту?
df <- df %>% arrange(node, time) %>% group_by(node)......
4. ДА. но результат тот же
5. Возможно, это специфическая проблема R-cloud. Это работает для меня, как и ожидалось, в RStudio. Я надеюсь, что вы везде использовали
dplyr::group_by
иdplyr::mutate
в коде.
Ответ №1:
Вы можете сохранить time
данные в числовом формате arrange
и удалить NA
строки.
library(dplyr)
df %>%
arrange(node, time) %>%
group_by(node) %>%
mutate(nextactivity = lead(activity)) %>%
ungroup %>%
dplyr::select(-time) %>%
na.omit()
# node activity nextactivity
# <chr> <chr> <chr>
#1 A cdf abc
#2 A abc nop
#3 A nop ghi
#4 A ghi jkm
#5 B tuv pqr
Комментарии:
1. когда я запускаю этот код для исходного набора данных, он по-прежнему не группировался. итак, есть ли у вас какие-либо предложения по части group_by (node)
2. Возможно
plyr
, вы загрузились. Попробуйте использовать функции с именами пакетов.dplyr::group_by
иdplyr::mutate
.3. Он все еще не работает. У меня есть добавить его вопрос комментарий часть
4. Работает ли это с образцами данных, которые вы указали в своем вопросе?
5. Нет, я отредактировал свой вопрос. по моему исходному набору данных. можете ли вы это проверить.