小编Hel*_*123的帖子

如何在R中的两个数据帧之间找到公共行?

我想创建一个新的数据框,其中只包含两个独立的data.frame的公共行.例:

data.frame 1

1 id300
2 id2345
3 id5456
4 id33
5 id45
6 id54
Run Code Online (Sandbox Code Playgroud)

data.frame2

1 id832
2 id300
3 id1000
4 id45
5 id984
6 id5456
7 id888
Run Code Online (Sandbox Code Playgroud)

所以我希望我的输出是:

1 id300
2 id45
3 id5456
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

r

14
推荐指数
4
解决办法
5万
查看次数

“错误:无法将 <haven_labelled> 转换为字符”

我和我的学生都加载了相同的数据集,安装了相同的包,并运行了相同的代码。当我运行“frq”时,我得到一个频率表,并且该变量被标记为“数字”。当我的学生运行相同的代码时,她得到"Error: Can't convert <haven_labelled> to character."

有什么想法我们可能会出错吗?

numeric character frequency labelled-generic r-haven

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

三明治::vcovHC() 和 coeftest::lmtest() 返回 NA 值

我目前正在构建一个回归模型,该模型有助于使用收入、温度等某些因素来解释销售情况。在检查回归后的残差图时,残差是异方差的。

为了解释异方差性,我在 R 中使用了vcovHC()coeftest(),它可用于在异方差性假设下重新计算标准误差及其 p 值。但这些函数返回 NA 值,因此所有相应的 p 值也是 NA。导致此问题的原因可能是什么以及如何解决?其代码如下:

fit_p <- lm(formula = final_list_p, data = new_data_p)
s_p <- summary(fit_p)
Run Code Online (Sandbox Code Playgroud)

线性回归输出的汇总统计数据为:

Residuals:                  
Min      1Q  Median      3Q     Max                     
-244190  -60770   -5759   59730  311108         
            
                
Coefficients:                   
Estimate                    
(Intercept)                 
        Std. Error  t   value   Pr(>|t|)    
var1    -3.36E+05   1.77E+05    -1.893  0.059026    .
var2    -2.90E+04   4.96E+03    -5.86   8.97E-09    ***
var3    -1.75E+05   8.93E+04    -1.958  0.050834    .
var4    -4.62E+00   2.80E+00    -1.653  0.098975    .
var5    2.39E+01    7.85E+00    3.04    0.002503    **
var6    -6.32E+04   1.08E+05    -0.588 …
Run Code Online (Sandbox Code Playgroud)

r standard-error linear-regression lm p-value

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

跳过CRAN测试,但在本地运行

如果包由CRAN测试,有一种简单的方法可以跳过包中某些测试的执行?背景是,我喜欢有很多测试,总而言之,它们很耗时(对CRAN不好).

我知道有,testthat::skip_on_cran()但我不想使用包testthat来避免另一个依赖.我正在寻找一种模仿的el-cheapo方式testthat::skip_on_cran.

理想情况下,我希望在目录pkg/tests中有一个调用测试文件的测试文件(testfiles),并且如果我们正在使用它们则会产生干扰:

if (!on_cran) {
 ## these tests are run only locally/when not on CRAN
 # run test 1 (e.g. source a file with a test)
 # run test 2
}
# run test 3 - always
Run Code Online (Sandbox Code Playgroud)

r package cran

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

R 中的 plm 包 - 空模型,当只包含每个人不随时间变化的变量时

我有一个这样的数据框('数学')(有三种不同的方法,虽然只显示了一种) - 数据框

我正在尝试为 MathScore 创建一个多级增长模型,其中 VerbalScore 是一个独立的、时间不变的随机效应。

我相信 R 代码应该与此类似 -

random <- plm(MathScore ~ VerbalScore + Method, data=math, index=c("id","Semester"), 
              model="random")
Run Code Online (Sandbox Code Playgroud)

但是,运行此代码会导致以下错误:

plm.fit(object, data, model = "within", effect = effect) 中的错误:
空模型

我相信这是索引的问题,因为如果我使用以下代码将运行:

random <- plm(MathScore ~ VerbalScore + Method + Semester, data=math, index="id", 
              model="random")
Run Code Online (Sandbox Code Playgroud)

对于如何创建所描述的多级随机效应模型的任何建议,我将不胜感激。

r plm

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

R:terms.default(公式)中的错误:没有术语组件也没有属性(pgmm函数)

我尝试学习如何将 GMM 方法与 R(Arellano-Bond 估计器)结合使用。所以我使用pgmm包中的命令plm

我复制了此示例的代码:https ://www.rdocumentation.org/packages/plm/versions/1.6-5/topics/pgmm

有了这些数据:

Date        country       credit    a   b   c   d   e   f   g    h  i   j   

2000-01-01  Germany     3840,304    0   0   0   0   0   0   1   .b  0   -1
2000-04-01  Germany     3891,104    0   0   0   0   0   0   0   .b  0   0
2000-07-01  Germany     3916,966    0   0   0   0   0   0   0   .b  0   0
2000-10-01  Germany     3984,611    0   0   0   0   0   0   0   .b  0   0
2001-01-01  Germany …
Run Code Online (Sandbox Code Playgroud)

r panel-data plm

5
推荐指数
0
解决办法
1257
查看次数

包反向依赖检查(尤其是在 Windows 上)

我想听听人们如何在 Windows 上进行反向依赖检查。

当使用tools::check_packages_in_dir()Windows 上的 CRAN 存储库策略 [1] 建议的“官方”但实验性功能时,会根据其来源检查反向依赖关系,即所有内容都将被编译。即使对于相对较少的依赖项/建议的包,这也可能需要很长时间。接下来,这不是很方便,因为我在此过程中遇到了很多丢失的包,因此测试出错,我需要安装丢失的包并重新开始......

我曾经使用devtools::revdep_checkwhich 很方便,因为它使用 Windows 二进制文件进行检查,所以没有时间花在编译上,而且它提供了一个很好的处理。然而,它与2.0版本,这一功能不应住里面决定devtools了,但应被移动到专用包(revdepcheck,被用于devtools通过中介包use_this),这是不提供CRAN但并不会在其发展资源库建设. 这种实际上已经不复存在的状态devtools似乎已经持续了一年多(revdepcheck最近才开发了一些新活动)。

(编辑:我还应该提到,devtools在删除反向依赖项检查功能之前使用的版本似乎会产生任意错误,因此这似乎也不是一个选项。)

我没有发现任何其他似乎可行的方法。所以我想知道,如今如何在基于 Windows 的机器上适当有效地检查反向依赖关系?

[1] https://cran.r-project.org/web/packages/policies.html

r devtools package package-development

5
推荐指数
0
解决办法
326
查看次数

plm:固定效应回归 - 索引/ID 顺序

我正在使用该plm包运行固定效应回归。\nID 代码的顺序为何以及如何对回归产生影响?

\n\n

我使用这些代码来运行回归,它们仅在 ID 代码CompanyYear.

\n\n

代码:

\n\n
MV_Year <- plm (MVlog ~ LEV + Size + DY + RDlog\n                , data=Values, model="within", index= c("Year","Company"))\n\n\nMV_Company <- plm (MVlog ~ LEV + Size + DY + RDlog,\n                   data=Values, model="within", index= c("Company", "Year"))\n
Run Code Online (Sandbox Code Playgroud)\n\n

相应的输出:\nMV_Year:

\n\n
Oneway (individual) effect Within Model\n\nCall:\nplm(formula = MVlog ~ LEV + Size + DY + RDlog, data = Values, \n    model = "within", index = c("Year", "Company"))\n\nUnbalanced Panel: n = …
Run Code Online (Sandbox Code Playgroud)

regression r plm

4
推荐指数
1
解决办法
3582
查看次数

如何使用Python检查面板数据中的单位根?

我正在从事时间序列分析,并且有 2021 年每个月 700 个单独区域的销售数据(我们将其称为 df_panel,因为我们的面板数据结构)。例如

区域 销售量
1区 一月 1000
1区 二月 2000年
1区 集市 3000
2区 一月 1000
2区 二月 2000年
2区 集市 1400
3区 一月 1000
3区 二月 1200
3区 集市 1400

通常,在处理销售数据时,您可以使用 ADF 测试等方法来检查销售数据中的单位根。我知道如何在 Python 中对标准非面板数据结构执行此操作,例如使用数据帧 df 上 statsmodels 的 adfuller 函数:

adf_test_result = adfuller(df["Sales"])[1]
Run Code Online (Sandbox Code Playgroud)

我怎样才能对我的面板数据结构做类似的事情,因为它由 700 条单独的销售曲线(每个区域一条)组成。目标是使用面板数据回归(固定或随机效应)

一种近似方法是将我的面板数据销售曲线总结为一条销售曲线,并对其进行 ADF 测试:

adf_test_result = adfuller(df_panel.groupby("Month").sum()["Sales"])
Run Code Online (Sandbox Code Playgroud)

但我认为这会大大高估销售数据中单位根的概率。当对 700 个单独区域进行这样的汇总时,销售数据中的大量信息会丢失。

另一种近似可能是检查每个单独区域的单位根并以某种方式取平均值(?)

不太确定这里最好的是什么......

在 R 中,有一个函数包plm实现purtest了几个测试程序,这些测试程序已被提议用面板数据测试单位根假设,例如 Levin、Lin 和 Chu (2002) 的“levinlin”,Im、Pesaran 和 Shin 的“ips”( 2003),“madwu”代表 …

python statistics

4
推荐指数
1
解决办法
1290
查看次数

如何使用plm计算R中gmm模型的BIC和AIC?

我正在使用该库估计 GMM 模型plm。我有不同的时刻条件。

Z <- list(~YDWPP + ST_DEGREE, ~YDWPP + ST_DEGREE, ~YDWPP + ST_DEGREE, 
    ~YDWPP + ST_DEGREE, ~YDWPP + ST_TRANSITIVITY, ~YDWPP + ST_STRUC_HOLE, 
    ~YDWPP + ST_STRUC_HOLE, ~YDWPP + ST_STRUC_HOLE, ~YDWPP + 
        ST_STRUC_HOLE)

Z <- lapply(Z, as.formula)

lg.gmm <- list(c(4L, 8L), c(5L, 8L), c(6L, 8L), 7:8, 7:8, c(4L, 8L), c(5L, 
8L), c(6L, 8L), 7:8)
Run Code Online (Sandbox Code Playgroud)

我正在为每组力矩限制运行一个循环Z,这样

out.1 <- list()
for(i in seq_along(Z)){
  plm.gmm <-
  pgmm(
  dynformula(as.formula(model), lg),
  data = pdata,
  effect = 'twoway',
  model = 'twostep',
  transformation = …
Run Code Online (Sandbox Code Playgroud)

benchmarking r plm gmm

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

plm 与 lm - 结果不同?

我多次尝试使用 lm 和 plm 进行回归。我得到了不同的结果。

\n\n

首先,我使用 lm 如下:

\n\n
fixed.Region1 <- lm(CapNormChange ~ Policychanges + factor(Region), \n    data=Panel)\n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,我按以下方式使用 plm:

\n\n
fixed.Region2 <- plm(CapNormChange ~ Policychanges+ factor(Region), \n    data=Panel, index=c("Region", "Year"), model="within", effect="individual")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为 plm 有问题,因为我在结果中没有看到拦截(见下文)。\n此外,我不完全确定是否+ factor (Region)有必要,但是,如果它不存在,我就看不到虚拟变量的系数(和显着性)。

\n\n

所以,我的问题是:

\n\n
    \n
  1. 我使用plm功能错误吗?(或者有什么问题)
  2. \n
  3. 如果不是的话,结果怎么会不一样呢?
  4. \n
\n\n

如果有人能给我提示,我将非常感激。

\n\n

LM 的结果:

\n\n
Call:\nlm(formula = CapNormChange ~ Policychanges + factor(Region), \n    data = Panel)\n\nResiduals:\n    Min      1Q  Median      3Q     Max \n-31.141  -4.856  -0.642   1.262 192.803 \n\nCoefficients:\n                                Estimate …
Run Code Online (Sandbox Code Playgroud)

r plm

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

R 相当于 Stata 的 Absorb

我想控制包含一百多个级别的因子变量,而不将该控制的结果输出到汇总表。请注意,我还对复制 Stata 命令的速度感兴趣,而不仅仅是对输出进行表面更改。

在 Stata 中我可以像这样使用“absorb”:

use http://www.stata-press.com/data/r14/abdata.dta, clear
. xtreg n w k i.year, fe

Fixed-effects (within) regression               Number of obs     =      1,031
Group variable: id                              Number of groups  =        140

R-sq:                                           Obs per group:
     within  = 0.6277                                         min =          7
     between = 0.8473                                         avg =        7.4
     overall = 0.8346                                         max =          9

                                                F(10,881)         =     148.56
corr(u_i, Xb)  = 0.5666                         Prob > F          =     0.0000

------------------------------------------------------------------------------
           n |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
           w | …
Run Code Online (Sandbox Code Playgroud)

r usage-statistics panel-data

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

pglm 中的 lag() 似乎对 stats 中的 lag() 存在 bug

正如标题所说。我加载后pglmlag停止正常工作。

library(pglm)

c(1,2,3,4) %>% lag()
Run Code Online (Sandbox Code Playgroud)

该对象被转换为时间序列,并且不再与 tibbles 兼容。

即使卸载pglm, 的依赖lag仍然有效。

一个解决方案可能是实际上从不加载pglm,但是如果我lag(x)在公式中有一个

pglm:pglm(
family= poisson,
y ~ lag(x),
model = "within", index="id",
data = db
)
Run Code Online (Sandbox Code Playgroud)

该算法无法收敛到估计值。由于某些原因,甚至强迫发生这种情况stats::lag(x)。有趣的是,相反,如果pglm已加载,则y ~ lag(x)可以正常工作y ~ stats:lag(x)

这是唯一有效的情况,呵呵!我唯一想到的另一件事是外部公式dplyr::lag是冲突的罪魁祸首。

我不知道如何优化工作流程,您有建议吗?

r panel-data plm

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