원본 데이터 집합에있는 대상 행 수에 따라 데이터 집합의 행을 복사하려고합니다.SAS 또는 R의 조건을 기반으로 중복 행 만들기
id x1 x2 x3 count
1 a b c 1
1 b c f 2
2 g h a 1
2 a d c 2
2 f g a 3
3 a g a 1
각 제목에있는 행 수를 감지하기 위해이 개수 변수를 만들었습니다. (x1 - x3 값에 대해서는 신경 쓰지 않아도됩니다.) 실제 데이터 세트에는이 세 가지보다 많은 주제가 있습니다.
데이터 세트, 내가 원하는 것은 이렇게 보일 것입니다.
id x1 x2 x3 count
1 a b c 1
1 b c f 2
1 a b c 1
1 b c f 2
2 g h a 1
2 a d c 2
2 f g a 3
2 g h a 1
2 a d c 2
2 f g a 3
3 a g a 1
나는 R과 함께 .. 코드
data want (drop=i);
set have;
by id;
output;
do i = 1 to count;
output;
end;
run;
하지만 분명히 너무 많은 복사본을 만들어 다음
어떤 도움을 시도하거나 SAS는 매우 감사합니다! 당신은 단지 다음 두 출력 문을 사용하여 관찰의 수를 두 번하려면
논리가 확실하지 않습니다. – akrun
'id = 2'가 3 번 나타나지 않아야합니까? (총 9 개). 그렇다면 다음을 시도해보십시오 :'df [rep (rownames (df), with (df, ave (id, id, FUN = length))),]' – Sotos
음, 원래 데이터 세트에서 나는 하나의 주제 그런 다음 원본 데이터의 copys 인 두 개의 행과 두 개의 여분의 행이있는 새 데이터를 만들고 싶습니다. 피사체의 행 수가 3 인 경우와 마찬가지로 데이터 집합에 3 개의 추가 행을 만들려고합니다. 따라서 해당 피사체의 행 수가 6입니다. – Laura