加载中…
  
博文

本周接到一个任务,要对此次新冠防控中基层防疫的不足和短板进行总结。不局限于期刊论文,新闻报道也可参考。于是碰到了一个要参考网页的问题。过程中遇到一些问题,度娘后发现没有很详尽的回答。因已经解决,遂记录。

 

步骤1

查询GB/T 7714-2015 网页类参考文献的标识代码为[EB/OL],另附上国标中的示例。


步骤2

新建模版template

 

打开EndnoteX9-Ctrl+N(新建reference)查看字段名

 

标签:

r

工作目录

分类: R语言
背景:将R代码复制给别人时,总是要先修改工作目录,于是想能不能有一个更为直接的方式。遂有此文!

# 手动设置
在Rstudio中菜单栏Session-Set Working Directory-Choose Directory-Desktop
# 快捷键设置
Ctrl+Shift+H-Desktop



# 获取桌面的路径
# 使用函数Sys.getenv()
# method-1
file.path(Sys.getenv('USERPROFILE'),'Desktop')
# method-2
file.p
标签:

r

table1

分类: R语言
library(table1)
data('iris')
head(iris)
# stats.default()会对连续性变量进行基础统计
my.render.cont <- function(x) {
  with(stats.default(x),
       sprintf('%0.2f (%0.1f)', MEAN, SD))
}
# 第一个参数为:~分析变量|分类变量
# 第二个参数为:数据集
# 第三个参数为:连续性变量的处理方式
# 第四个参数为:官方的文档解释为表格第一列的标题(主题)
table1(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width|Species,data=iris,
                          render.continuous=my.render.cont,
                          rowlabelhead = 'Variables')
标签:

r

创建数值型因子

分类: R语言

str(iris)
# 'data.frame': 150 obs. of  5 variables:
  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
# $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
# $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
# $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
# $ Species     : Factor w/ 3 levels 'setosa','versicolor',..: 1 1 1 1 1 1 1 1 1 1 ..

# 首先看一下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
背景介绍:比较两组的疗效是否有差异。 A组有效人数为12人,无效为32人,总人数为44人;B组有效人数为3人,无效为8人,总人数为11人。A组有效率为12/44,B组有效率为3/11,问两组的有效率是否不同?

先利用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语言
 #读入Excel文件

#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,
  rowNames = FALSE, detectDates = FALSE, skipEmptyRows = TRUE,
  skipEmptyCols = TRUE, rows = NULL, cols = NULL, check.names = FALSE,
  namedRegion = NULL, na.strings = 'NA', fillMergedCells = FALSE)

读取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;

*运行上述语句发现旧变量名和新变量名均存在与数据集中

 

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有