本周接到一个任务,要对此次新冠防控中基层防疫的不足和短板进行总结。不局限于期刊论文,新闻报道也可参考。于是碰到了一个要参考网页的问题。过程中遇到一些问题,度娘后发现没有很详尽的回答。因已经解决,遂记录。
步骤1
查询GB/T
7714-2015
步骤2
新建模版template
打开EndnoteX9-Ctrl+N(新建reference)查看字段名
标签:
r工作目录 |
分类: R语言 |
标签:
rtable1 |
分类: R语言 |
标签:
r创建数值型因子 |
分类: R语言 |
str(iris)
# 'data.frame':
#
# $ Sepal.Width : num
# $ Petal.Length: num
# $ Petal.Width : num
# $ Species
# 首先看一下iris数据集中变量Species的类型,发现为因子型。便可以使用以下两种方式
# 使用函数as.integer()就可以实现这个过程
# 实现方式1
as.integer(iris[['Species']])
# 实现方式2
as.integer(iris$Species)
# 注意方式1中使用了两个中括号,与我们之前的认知会有所不同。
# 比较两个中括号和一个中括号有何不同
# 因子型向量的形式
str(iris[['Species']])
# 数据框的形式(因子型)
str(iris['Species'])
# 可自行比较
a &
分类: R语言 |
birthday<-as.character('1992/12/22')#用/
birthday<-as.character('1992-12-22')#用-
endday<-as.character(Sys.Date())#系统时间
#生成数据框-方法1
fs<-cbind(birthday,endday)
fs<-as.matrix(fs)
fs<-as.data.frame(fs)
#使用管道函数生成数据框-方法2
library(magrittr)#使用管道函数需要先加载包
fs<-cbind(birthday,endday)%>%as.matrix()%>%as.data.frame()
library(lubridate)
#首先计算年月日的差值
fs$y<-year(fs$endday)-year(fs$birthday)
fs$m<-month(fs$endday)-month(fs$birthday)
fs$d<-day(fs$endday)-day(fs$birthday)
#最终生成实足年龄
#日的差值小于0,那么月份要减1;日的差值大于等于0,那么月份不变
fs$mm[fs$d<0]<-fs$m[fs$d<0]-1
fs$mm[fs$d>=0]<-fs$m[fs$d>=0]
#年份的思想同上
fs$yy[fs$mm<0]<-fs$y[fs$mm<0]-1
fs$yy[fs$mm>=0]<-fs$y[fs$mm
标签:
sas卡方检验 |
分类: SAS |
先利用SAS进行四格表的卡方检验,首先创建数据集test,数据集格式为
i j f
1 1 12
1 2 32
2 1 3
2 2 8
;
data test;
do i=1 to 2;
do j=1 to 2;
input f@@;
output;end;end;
datalines;
12 32 3 8
;
*给变量添加标签;
proc datasets lib=work;
modify test;
label i='group-组别,1代表A组,2代表B组'
j='curative effect-疗效,1代表有效,2代表无效'
f='freqency-频数,人数';
run;
*查看变量及标签信息;
proc contents data=test;
run;
*进行卡方检验,比较两组的有效率;
proc freq data=test;
weight f;
tables i*j/chisq expected norow nocol nopercent;
run;
*使用ODS系统,创建PDF
分类: SAS |
*在数据展示的过程当中经常需要将小数转换成百分位数的形式,比如合格率,及格率等等。实现此过程的函数在SAS中是percent函数
使用此函数要结合put函数使用,percent函数的使用格式是percent w.d,w是总宽度,d是转换成百分位数后保留的小数位数,转换成百分位数后“%”占3个字符宽度
本例随机新建数据集em,新建变量x,随机输入变量值;
data em;
input x@@;
cards;
0.5 0.03 0.36 0.98 0.75
;
data em;
set em;
y=put(x,percent8.2);
y1=put(x,percent8.1);
y2=put(x,percent8.0);
y3=put(x,percent8.);
run;
*查看变量类型,可知y y1 y2 y3 均是字符型变量,且y3和y2的效果一样;
proc contents data=em;
run;
分类: R语言 |
#Method1
如果你的Excel文件是'.xlsx'格式的,那么强烈建议使用openxlsx包读取!优点是速度快,且不易出错!
简易格式为:read.xlsx('path\\dataset.xlsx',sheetindex)
x_1<-openxlsx::read.xlsx('hb-4-Umb.xlsx',1)
此种方式就会把整个表中的数据读入x_1中。
更加具体的规则见帮助文件:格式为,真的是很详细!!
read.sx(xlsxFile, sheet = 1, startRow = 1, colNames =
TRUE,
读取b.xlsx表中的数据,从第二行开始,使用R的自动命名
x_1<-openxlsx::read.xlsx('C:\\users\\administrator\\desktop\\b.xlsx',startRow = 2,colNames=FALSE)
#Method2
X_2<-gdata::read.xls('C:\\users\\administrator\\desktop\\b.xlsx
分类: SAS |
*调用sashelp.class数据集;
data test; set sashelp.class;
run;
*思路非常简单:首先要得到观测数,然后确定好分开的比例,比如说一半一半,还是0.6+0.4,亦或是0.7+0.3然后用比例1*观测数,比例2*观测数;
*解释宏,以%macro开始,以%mend结束。
宏名字为num 宏变量为train_pct,validate_pct,
在proc sql 中select语句选择列变量,*表示全部列变量,count(*)表示全部的列变量计数,from语句后跟数据集名字
在宏中定义宏变量时要用%sysevalf(表达式)
%put 在log窗口显示内容;
%macro num(train_pct,validate_pct);
proc sql;
select count(*)
into :t_nobs
from test;
quit;
%let train_obs=%sysevalf(&train_pct*&t_nobs);
%let validate_obs=%sysevalf(&validate_pct*&t_nobs);
%put train_obs=&train_obs;
%put validate_obs=&validate_obs;
%mend;
%num(0.7,0.3)*调用宏;
*proc surveyslect 默认的抽样方式为单纯
标签:
杂谈 |
分类: SAS |
对数据集进行变量重命名的方法很多,若变量非常多的情况下,rename函数等可能不太友好,有没有可以批量修改变量名的方法呢?利用数组的方式将非常容易实现。
data test;
set sashelp.class;
run;
*查看数据集的前5行;
data m;set test(obs=5);run;
*查看数据集的变量信息;
proc contents data=test out=b;run;
*在log窗口只显示变量名,便于粘贴复制;
data b;set b;keep name;run;
proc print noobs;run;
*将数据集中所有的数值型变量名称赋值给宏变量box;
*将新名字赋值给box1;
%let box= Age Height Weight;
%let box1=Ages Heights Weights;
*定义两个数组boxn 和boxn1;
data test;set test;
array boxn{*}&box.;
array boxn1{*}&box1.;
do i=1 to dim(boxn);
boxn1{i}=boxn{i};
end;
run;
*运行上述语句发现旧变量名和新变量名均存在与数据集中