小编Dan*_*Cho的帖子

何时在dplyr中使用"Do"功能

我已经了解到,Do当您想要将函数应用于每个组时,将使用该函数.

例如,如果我想从"A","C"和"I"类变量中拉出前两行Index,可以使用以下语法.

t <- mydata %>% filter(Index %in% c("A", "C", "I")) %>% group_by(Index) %>% do(head(.,2))
Run Code Online (Sandbox Code Playgroud)

据我所知,在按索引分组后,do函数用于计算每个组的头(.,2).

但是,在某些情况下,do根本不使用.例如,要计算按变量Y2014分组的变量的平均值Index,我认为应该使用以下代码.

t <- mydata %>% group_by(Index) %>% do(summarise(Mean_2014 = mean(Y2014)))
Run Code Online (Sandbox Code Playgroud)

但是,上面的语法返回错误

Error in mean(Y2014) : object 'Y2014' not found
Run Code Online (Sandbox Code Playgroud)

但是如果我do从语法中删除它,它会返回我想要的内容.

t <- mydata %>% group_by(Index) %>% summarise(Mean_2014 = mean(Y2014))
Run Code Online (Sandbox Code Playgroud)

我对dodplyr 中函数的使用感到困惑.这对我来说似乎不一致.我什么时候应该使用而不使用do功能?我为什么要do在第一种情况下而不是在第二种情况下使用?

r dplyr

19
推荐指数
1
解决办法
2962
查看次数

使用dplyr包按组计算平均值

我正在使用来自ggplot2,'diamond'数据的着名数据集来练习dplyr包.我试图计算按变量'cut'分组的钻石的平均'价格'.我的代码如下.

price.cut <- diamonds %>%
group_by(cut) %>%
summarize(Mean = mean(price, na.rm=TRUE))
Run Code Online (Sandbox Code Playgroud)

我的期望是通过'cut'变量得到平均价格.但是,我只得到一个价值,即价格的总平均值.

>price.cut
   Mean
1 3932.8
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

r dplyr

10
推荐指数
1
解决办法
3万
查看次数

进行 Tobit 回归时的奇异性错误

我正在尝试估计一个标准的 tobit 模型,该模型被审查为零。

变量是

因变量:幸福

自变量

  • 城市(芝加哥,纽约),
  • 性别(男,女),
  • 就业(0=失业,1=就业),
  • 工作类型(失业,蓝色,白色),
  • 假期(失业,每周1天,每周2天)

“Worktype”和“Holiday”变量与“Employment”变量相互作用。

我正在使用censReg包进行 tobit 回归。

censReg(Happiness ~ City + Gender + Employment:Worktype + Employment:Holiday)
Run Code Online (Sandbox Code Playgroud)

summary()返回以下错误。

Error in printCoefmat(coef(x, logSigma = logSigma), digits = digits) : 
  'x' must be coefficient matrix/data frame
Run Code Online (Sandbox Code Playgroud)

为了找出原因,我运行了 OLS 回归。

有一些 NA 值,我认为这是因为模型设计和变量设置(某些变量似乎有奇点。而'Employment' = 0有值的人'Worktype' = Unemployed'Holidays' = Unemployed。这可能是原因?)

lm(Happiness ~ City + Gender + Employment:Worktype + Employment:Holiday)


Coefficients: (2 not defined because of …
Run Code Online (Sandbox Code Playgroud)

regression r na

5
推荐指数
1
解决办法
384
查看次数

如何创建配偶变量?

我有一对夫妇的数据,有变量:"家庭数量","户主","教育","收入"."家庭号码"是唯一分配给每个家庭的身份证号码."户主"是指该人是否是户主(1 =户主,2 =户主的配偶),"教育"和"收入"分别是教育水平和个人收入.例如,数据如下所示.

'household_number'  'head_of_household'  'education'  'income'
        1                     1              high       1000
        1                     2              low        100
        3                     1              medium     500
        3                     2              high       800
        4                     2              high       800
        4                     1              high       800
        9                     1              low        150
        9                     2              low        200
Run Code Online (Sandbox Code Playgroud)

我想为每个人创建配偶的变量.所以数据如下所示."配偶edu"是配偶的教育水平,"配偶公司"是配偶的收入.

'household_number'  'head_of_household'  'education'  'income' 'spouse_edu' 'spouse_inc'
        1                     1              high       1000      low         100
        1                     2              low        100       high        1000
        3                     1              medium     500       high        800
        3                     2              high       800       medium      500
        4                     2              high       800       high        800
        4                     1              high       800 …
Run Code Online (Sandbox Code Playgroud)

merge r

2
推荐指数
1
解决办法
120
查看次数

标签 统计

r ×4

dplyr ×2

merge ×1

na ×1

regression ×1