我在以下问题中找不到要使用的正确代码:
我有一个数据集(DF),每个ROV横断面都有横断面(行).我想根据SECTIONS和变量Year和ROV创建一个新的ID列(即一个新的分组变量).我希望它包含前5个部分(行),然后是下5个部分,依此类推-直到基片或ROV发生变化.因此,并不是每个新的ID都会包含5个元素.
dataframe <- data.frame(
Year = c("2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2023","2023","2023"),
ROV=c("2","2","2","2","2","2","2","2","4","4","4","4","4","4","4","4"),
Section=c("3","4","5","6","7","8","9","10","1","2","3","4","5","6","7","8"),
Substrate=c("Mud","Mud","Mud","Mud","Mud","Mud","Mud","Mud","Bedrock","Bedrock","Bedrock","Bedrock","Dead Lophelia", "Dead Lophelia", "Bedrock","Bedrock"))
result <- data.frame(Year = c("2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2021","2023","2023","2023"),
ROV=c("2","2","2","2","2","2","2","2","4","4","4","4","4","4","4","4"),
Section = c("3","4","5","6","7","8","9","10","1","2","3","4","5","6","7","8"),
Substrate= c("Mud","Mud","Mud","Mud","Mud","Mud","Mud","Mud","Bedrock","Bedrock","Bedrock","Bedrock","Dead Lophelia", "Dead Lophelia", "Bedrock","Bedrock"),
ID=c("1","1","1","1","1","2","2","2","3","3","3","3","4","6","7","7" ))
此代码每隔5行(=段)创建ID,但不考虑ROV或衬底的变化.我已经try 了Slice(),但没有得到所需的输出.有没有解决这个问题的办法?
dataframe$ID <- 1 + seq(0, nrow(dataframe) - 1) %/% 5