小编Dav*_*vid的帖子

测试面板数据中的多重共线性R

我正在使用plm包中运行面板数据回归,R并希望控制解释变量之间的多重共线性.
我知道-package中有vif()函数car,但据我所知,它不能处理面板数据输出.
plm可以做其他的诊断,如单位根测试,但我发现没有方法来计算多重.

有没有办法计算类似的测试vif,或者我可以只将每个变量视为时间序列,省略面板信息并使用car包运行测试?

我无法透露数据,但问题应与所有面板数据模型相关.
该维度大约为1,000个观测值,超过50个时间段.
我使用的代码如下所示:

pdata <- plm.data(RegData, index=c("id","time"))
fixed <- plm(Y~X, data=pdata, model="within")
Run Code Online (Sandbox Code Playgroud)

然后

vif(fixed) 
Run Code Online (Sandbox Code Playgroud)

返回错误.


先感谢您.

regression r panel-data plm

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

不同的y轴标签facet_grid和大小

我陷入了以下问题:

我想在一个绘图中显示时间序列的不同特征(具有多个子图)。为了对齐图表区域并易于创建,我使用了ggplot2它及其facet_grid功能。

但是,我只想更改一个轴标签(例如,将上图更改为百分比)。

此外,我想调整每个图的高度,以便上方的图大约是下方图的两倍。

非常感谢您的帮助!

require(ggplot2)

#simulate some data
df <- data.frame(date=c(1:1000),
              value=cumsum(rnorm(1000)),
              volume=abs(rnorm(1000)*10))

#melt for ggplot
df_melt <- melt(df, id=c("date"),measure.vars=c("value","volume"))

#plot
ggplot(df_melt, aes(x=date, y=value)) + geom_line() + 
       facet_grid(variable~., scales = "free")
Run Code Online (Sandbox Code Playgroud)

结果是这样的: 在此处输入图片说明

r ggplot2

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

解压缩为R中的zip文件返回错误1

我正在尝试加载一个中等大小的压缩档案(.zip文件~140 Mb),可以在这里找到(直接链接)(来源:德意志联邦银行(网站)).下载文件后,它将保存为"BKK-Download.zip".该文件包含〜50.000s xml文件,其中包含三个子文件夹中的一些相当奇怪的名称(例如"bbai3.q.de.nvbf90.f.kv.a1.s.2.nezxml").

在第一步中,我尝试在"tree"文件夹中打开"tree.xml"文件,在第二步中,我将使用XML包打开该文件.我通过使用解压缩功能尝试第一步:

f.path <- "path to the file"
dat <- unzip(paste0(f.path, "BKK-Download.zip"))

library(XML)
xml.content <- xmlParse(dat[1]) 
# for the case that "tree.xml" is the first xml-file
Run Code Online (Sandbox Code Playgroud)

但是,unzip-command会返回以下错误:

Warning message:
In unzip(paste0(f.path, "BKK-Download.zip")) :
  error 1 in extracting from zip file
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用带有多个文件夹和复杂文件名的测试zip-archive(如上所述),一切正常.

有什么想法可能会出现此错误?

r unzip

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

R计算重叠部分(多边形相交)的快速方法

我正在寻找一种方法来计算基本多边形被另一个(选择)多边形覆盖的百分比。

以此为例。我想计算红色和蓝色的面积除以红色的面积。

group_a <- data.frame(x = c(1, 4, 1),
                      y = c(2, 4, 4),
                      group = "base")
group_b <- data.frame(x = c(2, 5, 2),
                      y = c(3, 3, 5),
                      group = "selection")

dat <- rbind(group_a, group_b)
dat
x y     group
1 1 2      base
2 4 4      base
3 1 4      base
4 2 3 selection
5 5 3 selection
6 2 5 selection

library(ggplot2)

ggplot(dat, aes(x = x, y = y, fill = group)) + geom_polygon(alpha = 0.5)
Run Code Online (Sandbox Code Playgroud)

rgdal …

performance r

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

ggplot中的Rscript无效字体类型

我有一个使用非标准字体生成 ggplot 的简短脚本(请参阅下面的 MWE)。

如果我在 R(即 RStudio)中运行脚本,一切都按预期工作,并且我看不到任何错误。

当我使用命令行运行脚本时Rscript,出现错误:

Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y,  : 
  invalid font type
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics
In addition: There were 50 or more warnings (use warnings() to see the first 50)
Execution halted
Run Code Online (Sandbox Code Playgroud)

我用 执行脚本Rscript myscript.R,脚本的内容是

library(ggplot2)
theme_set(theme_light(base_family = "LM Roman 10"))
# if "base_family" is left empty, everything works with Rscript

p <- ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point()

ggsave("myplot.pdf", p, device …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 rscript

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

当多个group_by/summary时,R箭头返回错误的列

我有一个包含多个 group-by - summarise 语句的查询。当我取消分组之间的数据时,一切工作正常,但如果我不这样做,其中一列就会被另一列替换。

\n

我希望这些列不会改变。例如,在下面的示例中,变量gender应该是F, orM而不是Group X

\n
library(dplyr)\nlibrary(arrow)\n\n# Create sample dataset\nN <- 1000\nset.seed(123)\norig_data <- tibble(\n  code_group = sample(paste("Group", 1:2), N, replace = TRUE),\n  year = sample(2015:2016, N, replace = TRUE),\n  gender = sample(c("F", "M"), N, replace = TRUE),\n  value = runif(N, 0, 10)\n)\nwrite_dataset(orig_data, "example")\n\n# Query and replicate the error\n(ds <- open_dataset("example/"))\n#> FileSystemDataset with 1 Parquet file\n#> code_group: string\n#> year: int32\n#> gender: string\n#> value: double\n\nds |>\n  group_by(year, code_group, gender) |>\n  summarise(value …
Run Code Online (Sandbox Code Playgroud)

r apache-arrow

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

使用包中的功能但同时使用不同版本

我有同一个包的多个版本foo(全部具有一个函数bar),我都想在同一个脚本中使用它们。

在这个问题之后,我可以v1使用 加载包library("foo", lib.loc = "pkgs/v1")。但这会加载包中的所有函数。

现在我想foo::bar从版本 v1 分配到版本v2bar_v1foo::bar版本 v2 来bar_v2独立调用它们。但我没有看到在给定 lib 位置的情况下仅加载库的一个函数的选项(例如,解决方案是lib.loc在函数调用中指定 a bar_v1 <- foo::bar)。

这在 R 中可能吗?

微量元素

我在这里创建了一个测试包github.com/DavZim/testPkgfoo ,它有一个打印包版本(硬编码)的函数。该软件包有两个版本,每个版本一个。

要获取包的 tar.gz 文件,您可以使用此

# Download Files from https://github.com/DavZim/testPkg
download.file("https://github.com/DavZim/testPkg/releases/download/v0.1.0/testPkg_0.1.0.tar.gz", "testPkg_0.1.0.tar.gz")
download.file("https://github.com/DavZim/testPkg/releases/download/v0.2.0/testPkg_0.2.0.tar.gz", "testPkg_0.2.0.tar.gz")
Run Code Online (Sandbox Code Playgroud)

然后以以下形式设置文件夹结构

pkgs/
  0.1.0/
    testPkg/
  0.2.0/
    testPkg/
Run Code Online (Sandbox Code Playgroud)

我用

if (dir.exists("pkgs")) unlink("pkgs", recursive = TRUE)

dir.create("pkgs")
dir.create("pkgs/0.1.0")
dir.create("pkgs/0.2.0")

# install the packages locally …
Run Code Online (Sandbox Code Playgroud)

r r-package

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

R:strsplit中的正则表达式(找到","后跟大写字母)

假设我有一个包含一些我希望根据正则表达式拆分的字符的向量.

更确切地说,我想基于逗号分隔字符串,然后是空格,然后是大写字母(根据我的理解,regex命令看起来像这样:( /(, [A-Z])/g当我在这里尝试它时工作正常)).

当我尝试实现这一点时r,regex似乎不起作用,例如:

x <- c("Non MMF investment funds, Insurance corporations, Assets (Net Acquisition of), Loans, Long-term original maturity (over 1 year or no stated maturity)",
  "Non financial corporations, Financial corporations other than MFIs, insurance corporations, pension funds and non-MMF investment funds, Assets (Net Acquisition of), Loans, Short-term original maturity (up to 1 year)")

strsplit(x, "/(, [A-Z])/g")
[[1]]
[1] "Non MMF investment funds, Insurance corporations, Assets (Net Acquisition of), …
Run Code Online (Sandbox Code Playgroud)

regex r strsplit

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

geom_label 中的上标星号

我想geom_label从数据框字符串中绘制一个上标星,但找不到解决方案。

一个最小的工作示例是

library(ggplot2)
df <- data.frame(x = 1, y = 1, l = "P^2")
# the real data.frame has more observations with other expressions as well

ggplot(df, aes(x = x, y = y, label = l)) + 
  geom_label(parse = T)
Run Code Online (Sandbox Code Playgroud)

但我不想显示 P^2,而是想显示 P^*。然而,在这种情况下"P*""P^*"latex2exp::TeX("P^\\star", output = "character")、 或任何其他的都不能帮助我。\

编辑

如果您正在寻找在 geom_label、文本(注释)或其他使用 data.frame 中的文本的几何图形(即您在函数内分配值)内使用表达式(和星号)aes,那么这可能会有所帮助你。

如果您想在轴标签、标题或其他直接在函数外部指定的文本aes(即)中使用表达式(和星号) labs(x = "my expresion here"),那么这个问题将帮助您!

r ggplot2

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

在访问选项卡之前,另一个选项卡中的传单未使用 leafletproxy 进行更新

我正在制作一个使用闪亮的应用程序,该应用程序使用多个选项卡。在一个选项卡(不是起始选项卡)上,我显示一张传单地图,该地图由不同选项卡上的小部件控制。

问题是,如果我更改一个选项卡上的输入,而不先访问地图,然后访问地图,则地图不会更新。但是,在地图选项卡之后或期间更改输入,地图会更新。

要复制该问题:

  1. 运行以下代码
  2. 将输入颜色更改为蓝色(无需先访问地图选项卡!)
  3. 转到“地图”选项卡
    • 预期行为:蓝点。实际行为:没有点(尚未绘制,就好像observe()没有被触发(注意观察被触发但没有效果),或者传单没有渲染)
  4. 将颜色更改为黄色
    • 出现黄点
  5. 转到“其他”选项卡并将颜色更改为绿色
  6. 返回“地图”选项卡并看到一个绿点

同样,当应用程序启动并且我们直接转到地图时,我希望会显示一个红点。相反,没有点。

代码:

library(shiny)
library(leaflet)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("color", "Color", choices = c("red", "blue", "yellow", "green"))
    ),
    mainPanel(
      tabsetPanel(
        tabPanel("Other", h1("Empty Tab 1")),
        tabPanel("Map", leafletOutput("map"))
      )
    )
  )
)

server <- function(input, output, session) {
  # the base map and the circles are separated due to data restrictions
  # in the actual app!
  output$map <- renderLeaflet({
    leaflet() %>% 
      addTiles()
  })
  observe({
    leafletProxy("map") %>% 
      addCircles(lng = 0, …
Run Code Online (Sandbox Code Playgroud)

r shiny r-leaflet

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