我正在使用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)
返回错误.
先感谢您.
我陷入了以下问题:
我想在一个绘图中显示时间序列的不同特征(具有多个子图)。为了对齐图表区域并易于创建,我使用了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)
结果是这样的:

我正在尝试加载一个中等大小的压缩档案(.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(如上所述),一切正常.
有什么想法可能会出现此错误?
我正在寻找一种方法来计算基本多边形被另一个(选择)多边形覆盖的百分比。
以此为例。我想计算红色和蓝色的面积除以红色的面积。
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 …
我有一个使用非标准字体生成 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) 我有一个包含多个 group-by - summarise 语句的查询。当我取消分组之间的数据时,一切工作正常,但如果我不这样做,其中一列就会被另一列替换。
\n我希望这些列不会改变。例如,在下面的示例中,变量gender应该是F, orM而不是Group X
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) 我有同一个包的多个版本foo(全部具有一个函数bar),我都想在同一个脚本中使用它们。
在这个问题之后,我可以v1使用 加载包library("foo", lib.loc = "pkgs/v1")。但这会加载包中的所有函数。
现在我想foo::bar从版本 v1 分配到版本v2bar_v1到foo::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) 假设我有一个包含一些我希望根据正则表达式拆分的字符的向量.
更确切地说,我想基于逗号分隔字符串,然后是空格,然后是大写字母(根据我的理解,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) 我想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"),那么这个问题将帮助您!
我正在制作一个使用闪亮的应用程序,该应用程序使用多个选项卡。在一个选项卡(不是起始选项卡)上,我显示一张传单地图,该地图由不同选项卡上的小部件控制。
问题是,如果我更改一个选项卡上的输入,而不先访问地图,然后访问地图,则地图不会更新。但是,在地图选项卡之后或期间更改输入,地图会更新。
要复制该问题:
observe()没有被触发(注意观察被触发但没有效果),或者传单没有渲染)同样,当应用程序启动并且我们直接转到地图时,我希望会显示一个红点。相反,没有点。
代码:
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 ×10
ggplot2 ×3
apache-arrow ×1
panel-data ×1
performance ×1
plm ×1
r-leaflet ×1
r-package ×1
regex ×1
regression ×1
rscript ×1
shiny ×1
strsplit ×1
unzip ×1