使用dplyr时如何处理此问题?
按“ id”分组,我想将“ =”“ NA”的“会话”列号更改为顺序编号1,2,3,4 ... 转换前的数据是:
data<-data.frame("id"=c(825010211307012,825010211307012,825010211307021,825010211307021),session=c(1,NA,4,5,1,6,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,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!=“
有人可以告诉我如何实现这种转变吗?
非常感谢您的帮助!