使用以下数据框:
indiv1 <- c('ID1','ID45','ID85','ID41','ID70','ID32','ID21','ID26')
indiv2 <- c('ID12',0,'ID3',0,'ID10','ID8',0,0)
df <- data.frame(indiv1,indiv2)
> df
indiv1 indiv2
1 ID1 ID12
2 ID45 0
3 ID85 ID3
4 ID41 0
5 ID70 ID10
6 ID32 ID8
7 ID21 0
8 ID26 0
如果长度大于我的向量的长度,我想添加一个列V3
来分配一个重复的c(1,2,3)
向量。我尝试了 rep 功能:indiv2==0
indiv2==0
df$V3 <- ifelse(df$indiv2==0,rep(1:3,length.out=dim(df[df$indiv2==0,])[1]),0)
> df
indiv1 indiv2 V3
1 ID1 ID12 0
2 ID45 0 2
3 ID85 ID3 0
4 ID41 0 1
5 ID70 ID10 0
6 ID32 ID8 0
7 ID21 0 3
8 ID26 0 1
但它indiv2!=0
会根据我的需要计算继续向量的行:
> df
indiv1 indiv2 V3
1 ID1 ID12 0
2 ID45 0 1
3 ID85 ID3 0
4 ID41 0 2
5 ID70 ID10 0
6 ID32 ID8 0
7 ID21 0 3
8 ID26 0 1