R 修改序号和副本
这里有seq专家吗 我想计算每个id的值的数量。按正确的顺序从1到n进行计算可以。但是重复的值应该用相同的数字标记 seq中有我缺少的任何参数吗 报告。例:“count_n”是我实际创建的值,“need”是期望的输出 先谢谢你。干杯R 修改序号和副本,r,duplicates,seq,R,Duplicates,Seq,这里有seq专家吗 我想计算每个id的值的数量。按正确的顺序从1到n进行计算可以。但是重复的值应该用相同的数字标记 seq中有我缺少的任何参数吗 报告。例:“count_n”是我实际创建的值,“need”是期望的输出 先谢谢你。干杯 Date <- as.Date(c('2006-08-30','2006-08-30','2006-08-23', '2006-09-06', '2006-09-13', '2006-09-20')) ID <- c("x1","x1","x1","X
Date <- as.Date(c('2006-08-30','2006-08-30','2006-08-23', '2006-09-06',
'2006-09-13', '2006-09-20'))
ID <- c("x1","x1","x1","X2","X3","x1")
need<- c(2,2,1,1,1,3)
df<-data.frame(ID,Date,need)
df<- df%>% arrange(Date)
df$count_n <- ave(as.numeric(df$Date),df$ID,FUN = seq_along)
我们可以将每个
ID
的日期
转换为因子
,这将为每个日期
提供唯一的值
ave(as.integer(df$Date),df$ID,FUN = factor)
#[1] 1 2 2 1 1 3
我们还可以使用densite\u-rank
和dplyr
library(dplyr)
df %>%
group_by(ID) %>%
mutate(count_n = dense_rank(Date))
# ID Date need count_n
# <fct> <date> <dbl> <int>
#1 x1 2006-08-23 1 1
#2 x1 2006-08-30 2 2
#3 x1 2006-08-30 2 2
#4 X2 2006-09-06 1 1
#5 X3 2006-09-13 1 1
#6 x1 2006-09-20 3 3
库(dplyr)
df%>%
分组依据(ID)%>%
变异(计数=密集等级(日期))
#身份证日期需要计数\u n
#
#1 x1 2006-08-23 11
#2 x1 2006-08-30 2
#3 x1 2006-08-30 2
#4 X2 2006-09-06 11
#5 X3 2006-09-13 11
#6 x1 2006-09-20 3
我们可以在排序上使用匹配
编辑的“日期”
library(dplyr)
df %>%
group_by(ID) %>%
mutate(need = match(Date, sort(unique(Date))))
这个很好用!从未想过这个解决方案。谢谢你,罗纳克!
library(dplyr)
df %>%
group_by(ID) %>%
mutate(need = match(Date, sort(unique(Date))))