我想复制数据集中的行,具体取决于原始数据集中主题所具有的行数。根据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
我曾尝试下面的代码
data want (drop=i);
set have;
by id;
output;
do i = 1 to count;
output;
end;
run;
但很明显,这让太多的副本..
任何帮助与R或SAS是高度赞赏!
逻辑不清楚 – akrun
应该不是'id = 2'出现3次? (即总共9个)。如果是这样,试试这个:'df [rep(rownames(df),with(df,ave(id,id,FUN = length))),]' – Sotos
嗯,所以如果在原始数据集中,那么我想创建一个新的数据,其中存在这两行加两个额外的行,从原始数据复制。如果主题的行数为3,那么相同,那么我想在数据集中创建三个额外的行,因此该主题的行数是六个。 – Laura