根据第一个单元格值填写值

时间:2015-12-07 06:12:20

标签: r

假设我有这个数据

ProductID   VarA    VarB    VarC    VarD    Month   UDP
 1000        A       K       X       0       1       10
 1000        B       L       X       0       2       10.5
 1000        C       M       X       0       3       11
 1000        C       K       X       0       4       12
 1000        C       L       X       0       5       12.4
 1000        B       M       X       0       6       12.5
 1001        A       K       Y       0       1       0
 1001        B       L       Y       0       2       0
 1001        C       M       Y       0       3       0
 1001        A       K       Y       0       4       0
 1001        A       L       Y       0       5       0
 1001        B       M       Y       0       6       0
 1002        C       K       Z       1       1       0
 1002        A       L       Z       1       2       0
 1002        A       M       Z       1       3       0
 1002        B       K       Z       1       4       0
 1002        C       L       Z       1       5       0
 1002        A       M       Z       1       6       0

我有一个产品的UDP值为6个月。我想将值复制到所有其他产品。所以数据看起来像这样

ProductID   VarA    VarB    VarC    VarD    Month   UDP
 1000        A       K       X       0       1       10
 1000        B       L       X       0       2       10.5
 1000        C       M       X       0       3       11
 1000        C       K       X       0       4       12
 1000        C       L       X       0       5       12.4
 1000        B       M       X       0       6       12.5
 1001        A       K       Y       0       1       10
 1001        B       L       Y       0       2       10.5
 1001        C       M       Y       0       3       11
 1001        A       K       Y       0       4       12
 1001        A       L       Y       0       5       12.4
 1001        B       M       Y       0       6       12.5
 1002        C       K       Z       1       1       10
 1002        A       L       Z       1       2       10.5
 1002        A       M       Z       1       3       11
 1002        B       K       Z       1       4       12
 1002        C       L       Z       1       5       12.4
 1002        A       M       Z       1       6       12.5

1 个答案:

答案 0 :(得分:2)

我们可以使用rep

 df1$UDP <- rep(df1$UDP[df1$UDP!=0], length(unique(df1$ProductID)))