我正在创建一堆基本状态报告,而我发现乏味的事情之一是向所有表添加总计行。我目前正在使用Tidyverse方法,这是我当前代码的一个示例。我正在寻找的是默认包含一些不同级别的选项。
#load into RStudio viewer (not required)
iris = iris
#summary at the group level
summary_grouped = iris %>%
group_by(Species) %>%
summarize(mean_s_length = mean(Sepal.Length),
max_s_width = max(Sepal.Width))
#summary at the overall level
summary_overall = iris %>%
summarize(mean_s_length = mean(Sepal.Length),
max_s_width = max(Sepal.Width)) %>%
mutate(Species = "Overall")
#append results for report
summary_table = rbind(summary_grouped, summary_overall)
Run Code Online (Sandbox Code Playgroud)
多次执行此操作非常繁琐。我有点想要:
summary_overall = iris %>%
group_by(Species, total = TRUE) %>%
summarize(mean_s_length = mean(Sepal.Length),
max_s_width = max(Sepal.Width))
Run Code Online (Sandbox Code Playgroud)
仅供参考-如果您熟悉SAS,我正在寻找可通过proc中的类,方法或类型语句使用的相同类型的功能,这意味着让我可以控制汇总级别并在一个调用中获得多个级别。
任何帮助表示赞赏。我知道我可以创建自己的函数,但希望已经存在一些东西。我也希望坚持使用整洁的编程风格,尽管我对此并不感兴趣。
我的数据结构如下(这些只是示例数据,因为原始数据是秘密的)
id | crime | location | crimedate
------------------------------
1 | Theft | public | 2019-01-04
1 | Theft | public | 2019-02-06
1 | Theft | public | 2019-02-20
1 | Theft | private | 2019-03-10
1 | Theft | private | 2019-03-21
1 | Theft | public | 2019-03-01
1 | Theft | private | 2019-03-14
1 | Theft | public | 2019-06-15
1 | Murder | private | 2019-01-04
1 | Murder | private | 2019-10-20
1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试打开一个有密码的 word 文档。
我正在使用 docx 包 - 有点旧
from docx import opendocx, getdocumenttext
Run Code Online (Sandbox Code Playgroud)
并进一步
document = opendocx(filename)
Run Code Online (Sandbox Code Playgroud)
我想知道 opendocx 上是否有允许它打开受密码保护的 Word 文档的选项——我知道密码。我在这里检查了 github 存储库:https : //github.com/mikemaccana/python-docx但没有看到选项。我试图避免重写代码以使用更新的包,但这可能是不可避免的。
如何将我的SAS数据集转换为可以轻松粘贴到论坛中的数据集,或者交给某人复制我的数据.理想情况下,我还希望能够控制所包含的记录数量.
即我在SASHELP库中有sashelp.class,但我想在这里提供它,以便其他人可以将它作为我问题的起点.
我有关于一系列事件的数据,并想检查更改,因此我并不真正关心相同事件的重复。
这就是我所拥有的:
ID Date Item
1 1-Jan-19 A
1 5-Jan-19 A
1 8-Jan-19 B
1 15-Jan-19 A
2 1-Jan-19 A
2 5-Jan-19 A
2 8-Jan-19 B
2 15-Jan-19 B
3 1-Jan-19 B
3 5-Jan-19 A
3 8-Jan-19 B
3 15-Jan-19 A
4 1-Jan-19 A
4 5-Jan-19 A
4 8-Jan-19 A
4 15-Jan-19 B
Run Code Online (Sandbox Code Playgroud)
由此,我想要的是:
ID Sequence
1 ABA
2 AB
3 BABA
4 AB
Run Code Online (Sandbox Code Playgroud)
使用 tidyverse 我能够将所有内容放入一个列表/变量中,但我无法弄清楚如何在该步骤或单个步骤中删除重复列表。为了把它变成一个单一的变量,我使用了 mutate、group_by 和 paste0,代码如下。
任何帮助表示赞赏。
#create fake data
have = cbind(
c(1, 1, 1, …Run Code Online (Sandbox Code Playgroud) 我知道如何通过proc freq或sql 计算组和子组号.我的问题是当子组中的某些因素丢失时,我仍然希望将缺失因子显示为0.我该怎么做?例如,数据集是:
group1 group2
1 A
1 A
1 A
1 A
2 A
2 B
2 B
Run Code Online (Sandbox Code Playgroud)
我想要一个结果:
group1 group2 N
1 A 4
1 B 0
2 A 1
2 B 2
Run Code Online (Sandbox Code Playgroud)
如果我只使用默认的SAS设置,它通常会显示为
group1 group2 N
1 A 4
2 A 1
2 B 2
Run Code Online (Sandbox Code Playgroud)
但是我仍然希望结果中的第二行告诉我该类别中有0个观察值.
我想在 select 语句中定义某些特定列的长度,并且想连接两列,sponsor id即sponsorSAS proc sql 中的“ABC-123”。请帮助这是代码
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name FROM Stage0;
quit;
Run Code Online (Sandbox Code Playgroud)