У меня есть dataframe imcds
из опроса, в котором спрашивали информацию о сексе и возрасте каждого домохозяйства домохозяйства. Таким образом, хозяин дома будет Person 1 и остальной народ будет человек 2, 3, 4 .. и т.д ... Таким образом:Соответствие «uniqid» с соответствующим полом и возрастом.
uniqid Age1 Age2 Age3 Sex1 Sex2 Sex3
1012501 9 7 5 1 2 1
1012502 9 7 5 1 2 1
1012503 9 7 5 1 2 1
1012601 8 5 NA 2 1 NA
1012602 8 5 NA 2 1 NA
Первые пять чисел uniqid
являются ID домашнего хозяйства и последний два - идентификатор человека. Поэтому возрастное значение лица 1012503
составляет Age3
(5), а секс - Sex3
(1). То, что я хочу сделать, это изменить кадр imcds
данных во что-то вроде этого:
uniqid Age Sex
1012501 9 1
1012502 7 2
1012503 5 1
1012601 8 2
1012602 5 1
Каждый uniqid
со своим корреспондентом Sex
и Age
кадра данных values.The имеет 2095 набл 583 переменных. Нужен ли мне цикл? Что я могу сделать?
Спасибо! Это отлично поработало. Но как мне изменить сам df? добавить 'Age' и' Sex' в качестве новых столбцов исходного 'imcds' data.frame ?? Чтобы просто отбросить «Age1», «Age2», ... «Age7» и оставить один уникальный столбец с возрастом и полом каждого 'uniqid'. –
@GracielaCarrillo Вы можете создать новый объект с помощью 'df2 <- cbind (df1 [1], ...' (обновлено сообщение – akrun
@GracielaCarrillo. Если нам нужно создать новые столбцы в исходном наборе данных, просто сделайте 'df1 [c («Возраст», «Секс»)] <- список (возраст, пол) ' – akrun