根据公式获取完整的数据框案例

时间:2017-06-06 16:31:55

标签: r dataframe filter missing-data

我有一个包含面板数据的数据框,我想基于一个公式得到所有完整的观察结果。

虽然从公式中提取变量非常简单(使用get_all_vars),但我还想在公式中加入滞后(在本例中来自dplyr-package)等内容。

让我们采用公式:

        For i = 6 To lastColCell.Column Step 3
            .Range(.Cells(3, i), .Cells(7 + k, i + 2)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            k = k + A0
            'Each A0 should correspond to a different cell if user has different flowback delays
        Next i

和数据框

y ~ x1 + lag(x2, 1) + lag(x3, 2)

我想得到这样的东西:

  y    x1  x2   x3
1 2    3   NA   NA 
2 3    2   2    2  
3 2    6   5    3  
4 5    8   6    9 
5 1    3   7    4 
6 1    0   1    2 

最后我想使用它来创建不同时间段的假人(并且由于我的面板不平衡,并且多年来没有完成任何情况,因此在所有时段创建它们都不起作用。)

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果您使用model.frame

进行示例输入,则可以完成示例输出
my_df <- read.table(text=" y    x1  x2   x3
                         1 2    3   NA   NA 
                         2 3    2   2    2  
                         3 2    6   5    3  
                         4 5    8   6    9 
                         5 1    3   7    4 
                         6 1    0   1    2 ", header=T)

out_df <- model.frame(y ~ x1 + dplyr::lag(x2, 1) + dplyr::lag(x3, 2), 
                      data=my_df,
                      na.action=NULL)
names(out_df) <- names(my_df)
out_df

#output
    y x1 x2 x3
  1 2  3 NA NA
  2 3  2 NA NA
  3 2  6  2 NA
  4 5  8  5  2
  5 1  3  6  3
  6 1  0  7  9
相关问题