我dplyr根据以下数据集准备汇总表时遇到问题:
set.seed(1)
df <- data.frame(rep(sample(c(2012,2016),10, replace = T)),
sample(c('Treat','Control'),10,replace = T),
runif(10,0,1),
runif(10,0,1),
runif(10,0,1))
colnames(df) <- c('Year','Group','V1','V2','V3')
Run Code Online (Sandbox Code Playgroud)
我要计算的平均数,中位数,标准差和计数观测由每个组合的数量Year和Group.
我已成功使用此代码获取mean,median并且sd:
summary.table = df %>%
group_by(Year, Group) %>%
summarise_all(funs(n(), sd, median, mean))
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何n()在funs()命令中引入该函数.它给了我计数V1,V2和V3.这是多余的,因为我只想要样本的大小.我试过介绍
mutate(N = n()) %>%
Run Code Online (Sandbox Code Playgroud)
在线之前和之后group_by(),但它没有给我我想要的东西.
有帮助吗?
编辑:我没有让我怀疑清楚.问题是代码给了我不需要的列,因为观察的数量V1对我来说已经足够了.
我对使用哪种表格格式包,存在xtable和stargazer替代方案存在疑问.
我发现Stargazer在构建表时更容易理解 - 特别是如果需要使用列跨越.但是,我不知道如何在booktabs形状中制作观星表.有没有办法这样做,如xtable?
或者,我如何xtable以易于格式化生成列的方式使用?
我需要一些帮助来过滤数据框。
df 有几列,我想将其拆分为两个数据帧:
1- 仅包含第一列重复的行(包括所有副本)。
2- 其余行,不重复。
这是一个例子:这将是原始的。
V1 V2
[1,] "A" "1"
[2,] "B" "1"
[3,] "A" "1"
[4,] "C" "2"
[5,] "D" "3"
[6,] "D" "4"
Run Code Online (Sandbox Code Playgroud)
我想变成这样:
V1 V2
[1,] "A" "1"
[2,] "A" "1"
[3,] "D" "3"
[4,] "D" "4"
Run Code Online (Sandbox Code Playgroud)
和这个:
V1 V2
[1,] "B" "1"
[2,] "C" "2"
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我曾尝试导出到 Excel,但数据集太大而无法实现。
谢谢
假设我有一个数据框列表,如下所示:
df1 <- data.frame(a1 = 1:5, a2 = 1:5, a3 = 1:5)
df2 <- data.frame(a1 = 1:3, a2 = 2:4, a3 = 3:5)
df3 <- data.frame(a1 = 10:20, a2 = 5:15)
l <- list(df1 = df1, df2 = df2, df3 = df3)
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能mutate对列表中的每个元素执行操作(如 )以元素名称为条件?
例如 - 如果我想仅在处理df1或时添加一些新列df3,并且如果我正在处理时想删除某些列,我将如何进行df2?
可以map_if处理吗?
PS:请记住,该列表可能包含超过 3 个数据集,因此可能需要多个条件。
我想知道是否可以在表上显示百分比值,但仍然可以使用它们进行算术运算.
我试过percent()从scales包中使用,但似乎它将值从数字转换为字符.我试图将它们转换回来as.numeric(),但它也无法正常工作.
有解决方案吗 谢谢.
我只是在开始使用package likextable或`stargazer。Bellow 是一个示例数据集,原始数据集要大得多。
set.seed(1)
df <- data.frame(rep(
sample(c(2012,2016),10, replace = T)),
sample(c('Treat','Control'),10,replace = T),
runif(10,0,1),
runif(10,0,1),
runif(10,0,1))
colnames(df) <- c('Year','Group','V1','V2','V3')
Run Code Online (Sandbox Code Playgroud)
我想生成格式良好的表格,显示上述数据集的描述性统计数据。
但是,有没有一种方法xtable可以直接生成一个表格,我可以在其中查看整个数据集的统计数据,按组(治疗和控制)和年份(2012、2016)分开?或者甚至可以将组和年份结合起来?
或者我应该根据这些设置过滤原始 df 并xtable在每个设置上运行?
我想要的另一件事是显示变量的中位数,而不是显示mean,以及其他统计数据。是否有可能,或者我是否必须使用 R 手动计算?
任何考虑stargazer的解决方案都是有效的!
谢谢!
我知道这已经被问过了,但我认为我的问题有点不同(不管是葡萄牙语)。我有这个数据集:
df <- cbind(c(rep(2012,6),rep(2016,6)),
rep(c('Emp.total',
'Fisicas.total',
'Outros,total',
'Politicos.total',
'Receitas.total',
'Proprio.total'),2),
runif(12,0,1))
colnames(df) <- c('Year,'Variable','Value)
Run Code Online (Sandbox Code Playgroud)
我想对行进行排序,首先将具有相同年份的所有内容分组。之后,我希望Variable像这样订购该列:
我知道我可以使用arrange()fromdplyr来按年份排序。但是,我不知道如何将其与任何例行程序结合使用,factor并且order不会弄乱以前的按年排序。
有什么帮助吗?谢谢
我正在努力下载 Excel 文件,然后将其加载到 R:
utils::download.file(
url = 'https://servicos.ibama.gov.br/ctf/publico/areasembargadas/downloadListaAreasEmbargadas.php',
destfile = 'C:/users/arthu/Desktop/fines.rar',
mode = "wb"
)
Run Code Online (Sandbox Code Playgroud)
解压并尝试将其加载到 R 中后:
utils::unzip(
zipfile = './fines.rar',
exdir = './ibama_data'
)
dados <- readxl::read_xls(
"./ibama_data/rel_areas_embargadas_0-65000_2020-12-10_080019.xls"),
skip = 6,
col_type = c(rep("guess", 13), "date", "guess", "date")
)
Run Code Online (Sandbox Code Playgroud)
我明白了libxls error: Unable to open file。
如果我尝试将文件重命名为 .xlsx,如下所示,则在使用 读取文件时会出现评估错误readxl::read_excel,说unable to open file
file <- file.rename(
from = "./Desktop/ibama_data/rel_areas_embargadas_0-65000_2020-12-10_080019.xls",
to = "./Desktop/ibama_data/test.xlsx"
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我手动打开这样的文件,Excel 会向我发出警告,指出该文件的扩展名与其类型不匹配。将其保存为 .xlsx 后,我终于可以使用加载它read_excel
鉴于我想编写一个包含从网络下载此类数据然后将其加载到 R 中的函数的包,我该如何解决这个问题?
编辑
r ×8
dplyr ×3
format ×2
stargazer ×2
xtable ×2
dataframe ×1
duplicates ×1
filter ×1
formatting ×1
kableextra ×1
numeric ×1
percentage ×1
purrr ×1
readr ×1
readxl ×1
summary ×1
tidyverse ×1