小编Art*_*ito的帖子

在计算其他摘要统计信息的同时使用n()

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)

我要计算的平均数,中位数,标准差和计数观测由每个组合的数量YearGroup.

我已成功使用此代码获取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,V2V3.这是多余的,因为我只想要样本的大小.我试过介绍

    mutate(N = n()) %>%
Run Code Online (Sandbox Code Playgroud)

在线之前和之后group_by(),但它没有给我我想要的东西.

有帮助吗?


编辑:我没有让我怀疑清楚.问题是代码给了我不需要的列,因为观察的数量V1对我来说已经足够了.

r summary dplyr

6
推荐指数
2
解决办法
1243
查看次数

观星者可以按照书签的风格吗?

我对使用哪种表格格式包,存在xtablestargazer替代方案存在疑问.

我发现Stargazer在构建表时更容易理解 - 特别是如果需要使用列跨越.但是,我不知道如何在booktabs形状中制作观星表.有没有办法这样做,如xtable

或者,我如何xtable以易于格式化生成列的方式使用?

formatting r xtable stargazer

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

过滤仅显示重复项的数据框

我需要一些帮助来过滤数据框。

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,但数据集太大而无法实现。

谢谢

r filter duplicates

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

如何根据列表中每个元素的名称使用map_if

假设我有一个数据框列表,如下所示:

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 个数据集,因此可能需要多个条件。

r dataframe dplyr purrr tidyverse

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

如何将数字格式化为百分比值,但仍能够以商业方式处理?

我想知道是否可以在表上显示百分比值,但仍然可以使用它们进行算术运算.

我试过percent()scales包中使用,但似乎它将值从数字转换为字符.我试图将它们转换回来as.numeric(),但它也无法正常工作.

有解决方案吗 谢谢.

format r numeric percentage

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

如何使用 xtable 基于条件生成表

我只是在开始使用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的解决方案都是有效的!

谢谢!

format r xtable stargazer kableextra

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

使用自定义顺序在先前使用排列排序后排列行

我知道这已经被问过了,但我认为我的问题有点不同(不管是葡萄牙语)。我有这个数据集:

 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像这样订购该列:

  1. 总收入
  2. 总财政
  3. 空总
  4. 总政治
  5. 自有总
  6. 总分

我知道我可以使用arrange()fromdplyr来按年份排序。但是,我不知道如何将其与任何例行程序结合使用,factor并且order不会弄乱以前的按年排序。

有什么帮助吗?谢谢

r dplyr

0
推荐指数
1
解决办法
2348
查看次数

将损坏的 xls 文件加载到 r 中,无需手动更改文件类型

我正在努力下载 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 readr readxl

0
推荐指数
1
解决办法
691
查看次数