У меня есть некоторые трудности с моим кодом, и я надеюсь, что некоторые из вас могли бы помочь.
Набор данных выглядит примерно так:
df <- data.frame("group" = c("A", "A", "A","A_1", "A_1", "B","B","B_1"),
"id" = c("id1", "id2", "id3", "id2", "id3", "id5","id1","id1"),
"time" = c(1,1,1,3,3,2,2,5),
"Val" = c(10,10,10,10,10,12,12,12))
"группа" указывает группу, к которой принадлежит человек«id» находится в. «A_1» означает, что субъект покинул группу.
Например, один субъект «id1» покидает «группу A», которая становится группой «A_1», где только «id2»и "id3" являются членами.Точно так же «id5» покидает группу B, которая становится «B_1» с только id1 в качестве члена.
То, что я хотел бы иметь в окончательном наборе данных, - это идентификация групп противоположного типа, которая должна выглядеть примерно так:
final <- data.frame("group" = c("A", "A", "A","A_1", "B","B","B_1"),
"id" = c("id1", "id2", "id3", "id1", "id5","id1","id5"),
"time" = c(1,1,1,3,2,2,5),
"Val" = c(10,10,10,10,12,12,12),
"groupid" = c("A", "A", "A","A", "B","B","B"))
, причем «A_1» и «B_1» указывают только субъектов, «id1» и «id5», соответственно, которые покинули исходную группу, вместо идентификации оставшихся объектов.
У кого-нибудь есть предложения о том, как я мог бы систематически это делать?
Заранее благодарю за помощь.
Продолжение:
Мои данные немного сложнее, чем в приведенном выше примере, так как их несколько "выходы "из обработок, более того, идентификатор группы может иметь разные символьные длины (здесь, например, AAA и B).Данные больше похожи на следующие:
df2 <- data.frame("group" = c("AAA", "AAA", "AAA","AAA","AAA_1","AAA_1", "AAA_1","AAA_2","AAA_2","B","B","B_1"),
"id" = c("id1", "id2", "id3","id4", "id2", "id3","id4", "id2","id3", "id5","id1","id1"),
"time" = c(1,1,1,1,3,3,3,6,6,2,2,5),
"Val" = c(10,10,10,10,10,10,10,10,10,12,12,12))
Где в момент времени 3 id1 покидает группы AAA, которые становятся группами AAA_1, в то время как в момент времени 6, также id4 покидает группу AAA, которая становится группой AAA_2.Как обсуждалось ранее, я хотел бы, чтобы группы с "_" идентифицировали те идентификаторы, которые покинули группу, а не оставшиеся.Следовательно, окончательный набор данных должен выглядеть примерно так:
final2 <- data.frame("group" = c("A", "A", "A","A","A_1","A_2",
"B","B","B_1"),
"id" = c("id1", "id2", "id3","id4", "id1", "id4", "id5","id1","id5"),
"time" = c(1,1,1,1,3,6,2,2,5),
"Val" = c(10,10,10,10,10,10,12,12,12))
спасибо за помощь мне с этим