【发布时间】:2017-05-24 01:34:00
【问题描述】:
我正在尝试在 R 中重新创建我在 SAS 中的流程,在该流程中,我创建了一个具有某个变量的不同值的数据集,以对该变量进行评分。在这种情况下,我希望重复数据集中的每个观察,治疗序号从 0 变为 4,因此每个观察将变成 5 个观察。
SAS 代码:
data want;
set have;
do treatmentordinal=0 to 4;
output;
end;
run;
这基本上将为数据集中的每个观察创建 5 个观察,其中处理序号将从 0 变为 4 。我一直在寻找如何做到这一点,但找不到任何东西。
需要明确的是,我已经有一个包含 10k 左右行的数据集。只想让每一行都有每一种治疗价值。
示例 有:
treatment=c(2)
ID=c(1)
df_have=data.frame(treatment,ID)
想要:
treatment2=c(0,1,2,3,4)
ID=c(1)
df_want=data.frame(treatment2,ID)
【问题讨论】:
-
data.frame(treatment = 0:4, ID=1)?或使用transform(df_have[rep(1, 5),], treatment = seq(5)-1) -
我想这是我的例子的另一种方式,虽然我想将一些东西应用于已经制作的数据集。
-
请检查我之前评论中的编辑
-
嗯,我明白了意图,我正试图弄清楚要改变什么,但现在它只是在 df_have 数据集中进行第一次观察,所以我最终得到了一个数据集共 5 次观察
-
@AdamSanders 你的数据有唯一的
id吗?是否要为该唯一 ID 复制每一行?
标签: r