【问题标题】:Computing origin-destination fixed effects with R用 R 计算起点-终点固定效应
【发布时间】:2015-11-24 09:54:54
【问题描述】:

我正在使用具有各种类型固定效应的重力方程。起点固定效应、终点固定效应、起点-终点对固定效应。

考虑以下示例

require(dplyr)
mydf <- data_frame(orig = rep(LETTERS[1:3], each = 3),
                   dest = rep(LETTERS[1:3], times = 3))

可以使用因子创建起点和终点固定效应

mydf <- mutate(mydf,
               orig_fe = factor(orig),
               dest_fe = factor(dest))

现在我想对起点-终点对执行相同的操作。例如,AB 组合应采用与BA 组合相同的值。当然,这个变量也应该是一个因素。

预期结果如下

mydf$pair_fe = as.factor(c('AA', 'AB', 'AC', 'AB', 'BB', 'BC', 'AC', 'BC', 'CC'))

mydf

#      orig  dest orig_fe dest_fe pair_fe
#     (chr) (chr)  (fctr)  (fctr)  (fctr)
# 1     A     A       A       A      AA
# 2     A     B       A       B      AB
# 3     A     C       A       C      AC
# 4     B     A       B       A      AB
# 5     B     B       B       B      BB
# 6     B     C       B       C      BC
# 7     C     A       C       A      AC
# 8     C     B       C       B      BC
# 9     C     C       C       C      CC

【问题讨论】:

    标签: r dataframe glm o-d-matrix


    【解决方案1】:

    我们可以使用pmaxpmin 得到逐行的最大值和最小值,然后将paste 向量放在一起,然后转换为factor 类。

    mydf %>% 
         mutate(pair_fe= factor(paste0(pmin(orig,dest), pmax(orig,dest))))
    #    orig  dest orig_fe dest_fe pair_fe
    #   (chr) (chr)  (fctr)  (fctr)  (fctr)
    #1     A     A       A       A      AA
    #2     A     B       A       B      AB
    #3     A     C       A       C      AC
    #4     B     A       B       A      AB
    #5     B     B       B       B      BB
    #6     B     C       B       C      BC
    #7     C     A       C       A      AC
    #8     C     B       C       B      BC
    #9     C     C       C       C      CC
    

    【讨论】:

    • 感谢阿克伦!这正是我所追求的。我不知道pminmax :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多