как я могу решить эту проблему при использовании dplyr?
, сгруппированных по "id", я хочу изменить номер столбца "session", который! = "NA", на порядковый номер 1,2,3, 4 ... данные до преобразования:
data<-data.frame("id"=c(825010211307012,825010211307012,825010211307012,825010211307012,825010211307012,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021),session=c(1,NA,NA,4,5,1,NA,NA,NA,5,6,NA,8))
id session
825010211307012 1
825010211307012 NA
825010211307012 NA
825010211307012 4
825010211307012 5
825010211307021 1
825010211307021 NA
825010211307021 NA
825010211307021 NA
825010211307021 5
825010211307021 6
825010211307021 NA
825010211307021 8
данные после преобразования должны быть:
data2<-data.frame("id"=c(825010211307012,825010211307012,825010211307012,825010211307012,825010211307012,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021,825010211307021),session=c(1,NA,NA,2,3,1,NA,NA,NA,2,3,NA,4))
id session
825010211307012 1
825010211307012 NA
825010211307012 NA
825010211307012 2
825010211307012 3
825010211307021 1
825010211307021 NA
825010211307021 NA
825010211307021 NA
825010211307021 2
825010211307021 3
825010211307021 NA
825010211307021 4
это мой код:
data2 <- data %>%
group_by(id) %>%
mutate(session[which(session != "NA")] = 1:length(which(session != "NA")))
но это идет не так, как это:
Ошибка: неожиданно '=' в:
"group_by (id)%>%
mutate (session [which (session! =«
Кто-нибудь может сказать мне, как я могу добиться этого преобразования?
Я буду очень признателен за вашу помощь!