I was wondering if there was a cleaner way to do what I have already done, this code actually works, but I wanted to probe the expertise of people in the house in order to be able to do this a better way.
Suppose we simply have some data with a column of an identifier by participant we will call it indiv for the sake of our example, therefore we have a data frame with 36 subjects and all of them numbered and I want to create a new column every two individuals and name it as dyad and a dynamic numbering.
indiv <- c(1:36)
freq <- data.frame(indiv)
freq$ID <- vector(length = dim(freq)[1])
for (i in 1:nrow(freq)) {
if (0<freq$indiv[i]&&freq$indiv[i]<=2){freq$ID[i] <- print("dyad01")}
else if (2<freq$indiv[i]&&freq$indiv[i]<=4){freq$ID[i] <- print("dyad02")}
else if (4<freq$indiv[i]&&freq$indiv[i]<=6){freq$ID[i] <- print("dyad03")}
else if (6<freq$indiv[i]&&freq$indiv[i]<=8){freq$ID[i] <- print("dyad04")}
else if (8<freq$indiv[i]&&freq$indiv[i]<=10){freq$ID[i] <- print("dyad05")}
else if (10<freq$indiv[i]&&freq$indiv[i]<=12){freq$ID[i] <- print("dyad06")}
else if (12<freq$indiv[i]&&freq$indiv[i]<=14){freq$ID[i] <- print("dyad07")}
else if (14<freq$indiv[i]&&freq$indiv[i]<=16){freq$ID[i] <- print("dyad08")}
else if (16<freq$indiv[i]&&freq$indiv[i]<=18){freq$ID[i] <- print("dyad09")}
else if (18<freq$indiv[i]&&freq$indiv[i]<=20){freq$ID[i] <- print("dyad10")}
else if (20<freq$indiv[i]&&freq$indiv[i]<=22){freq$ID[i] <- print("dyad11")}
else if (22<freq$indiv[i]&&freq$indiv[i]<=24){freq$ID[i] <- print("dyad12")}
else if (24<freq$indiv[i]&&freq$indiv[i]<=26){freq$ID[i] <- print("dyad13")}
else if (26<freq$indiv[i]&&freq$indiv[i]<=28){freq$ID[i] <- print("dyad14")}
else if (28<freq$indiv[i]&&freq$indiv[i]<=30){freq$ID[i] <- print("dyad15")}
else if (30<freq$indiv[i]&&freq$indiv[i]<=32){freq$ID[i] <- print("dyad16")}
else if (32<freq$indiv[i]&&freq$indiv[i]<=34){freq$ID[i] <- print("dyad17")}
else {freq$ID[i] <- print("dyad18")}
}
Of course this has worked for me and did the job the way I expected, however, I was wondering if anyone knows a cleaner way, just for the sake of learning and improving.
Thanks in advance!
Aucun commentaire:
Enregistrer un commentaire