我正在尝试使用 stargazer 包在乳胶中输出数据帧。我希望列名包含乳胶代码,但 stargazer 不允许数据框名称中的乳胶代码。我也尝试使用 column.labels 参数,但此参数仅用于回归表,而不用于输出数据框。这是我尝试过的两种方法。都没有工作。
代码:
# Creating a data frame
df = data.frame(x = 1:5, y = 6:10)
# Changing names
names(df) = c("$X$", "$Y$\\textsuperscript{1}")
# Exporting
stargazer(df, summary = F,
notes = "\\textsuperscript{1} This is a note that was supposed to refer to $Y$.")
Run Code Online (Sandbox Code Playgroud)
输出(显然观星者无法识别 LaTeX 代码):
% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Sat, Oct 29, 2016 - …Run Code Online (Sandbox Code Playgroud) 我正在对人口普查数据进行回归,其中我的因变量是预期寿命,我有八个自变量.数据汇总为城市,因此我有数千个观测值.
我的模型虽然有些异方差.我想运行加权最小二乘法,其中每个观测值都按城市人口加权.在这种情况下,这意味着我想通过人口平方根的倒数来加权观察.然而,我不清楚什么是最好的语法.目前,我有:
Model=lm(…,weights=(1/population))
Run Code Online (Sandbox Code Playgroud)
那是对的吗?或者应该是:
Model=lm(…,weights=(1/sqrt(population)))
Run Code Online (Sandbox Code Playgroud)
(我在这里发现了这个问题:加权最小二乘 - R但它没有说明R如何解释权重参数.)
我很不好意思问这个问题。有经验的 R 用户肯定知道这一点,但这里是:
我需要找到两个假定相同的向量之间不匹配的位置。在这种情况下,将 NA 视为不匹配非常重要。
> x <- c(1, NA, NA, NA, 5); x
[1] 1 NA NA NA 5
> y <- c(1, NA, NA, 4, 5); y
[1] 1 NA NA 4 5
Run Code Online (Sandbox Code Playgroud)
如果我得到一个布尔向量或一个位置不匹配的数字向量,对我来说并不重要:
> c(F, T, T, T, F)
[1] FALSE TRUE TRUE TRUE FALSE
> 2:4
[1] 2 3 4
Run Code Online (Sandbox Code Playgroud)
> which(x != y)
integer(0)
> setdiff(x, y)
numeric(0)
> !(x %in% y)
[1] FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 dplyr::summarize() 和 dplyr::across() 来获取行中包含多个汇总统计信息和列中的变量的小标题。我只能通过使用 dplyr::bind_rows() 来实现这个结果,但我想知道是否有更优雅的方法来获得相同的输出。
> library(tidyverse)
?? Attaching packages ?????????????????????????????????????????????? tidyverse 1.3.1 ??
? ggplot2 3.3.3 ? purrr 0.3.4
? tibble 3.1.1 ? dplyr 1.0.6
? tidyr 1.1.3 ? stringr 1.4.0
? readr 1.4.0 ? forcats 0.5.1
?? Conflicts ????????????????????????????????????????????????? tidyverse_conflicts() ??
? dplyr::filter() masks stats::filter()
? dplyr::lag() masks stats::lag()
>
> bind_rows(min = summarize(starwars, across(where(is.numeric), min,
+ na.rm = TRUE)),
+ median = summarize(starwars, across(where(is.numeric), median,
+ na.rm = TRUE)),
+ mean = summarize(starwars, across(where(is.numeric), mean, …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个函数,该函数将同时清除工作区和内存,这样我就不必键入“rm(list = ls()); gc()”,而只需键入一个函数。但是 rm(list = ls()) 从函数内部调用时不起作用。为什么?有没有办法解决?
> # Let's create an object
> x = 0
> ls()
[1] "x"
>
> # This works fine:
> rm(list = ls()); gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 269975 14.5 592000 31.7 427012 22.9
Vcells 474745 3.7 1023718 7.9 808322 6.2
> ls()
character(0)
>
> ## But if I try to create a function to do exactly the same thing, it doesn't work
> # …Run Code Online (Sandbox Code Playgroud) 考虑以下:
> x<-178379.4999999999999999999999999999999
> x
[1] 178379.5
> round(x)
[1] 178380
Run Code Online (Sandbox Code Playgroud)
这似乎是一个基本的舍入错误。R中是否存在已知的舍入误差?还是因为即使在工作存储器中,R最多也只能处理22位数字?