如何使用Rstudio生成中文PDF文档

Python092

如何使用Rstudio生成中文PDF文档,第1张

可以去下载相应的软件1、PDF文件的识别:1)文件可以直接识别的(以文本形式保存的PDF文件):安装acrobat5专业版,注意不是acrobatreader,直接另存为rtf文件(识别整个文件),或者选择工具栏上的文字选择按钮,然后选择文字区域,然后复制到word等中。2)文件不能直接识别的(以图片形式保存的PDF文件):安装office2003,并装上office工具MicrosoftOfficeDocumentImaging(完全安装此工具),然后在打印机里面会增加MicrosoftOfficeDocumentImageWriter打印机,然后将PDF文件打印到此打印机,选择打印形成的文件的保存位置,然后会自动形成一个MDI文件,并且自动用MicrosoftOfficeDocumentImage打开此文件,然后选择“工具”菜单下的“使用ocr识别文本”,识别完成后,在选择“工具”下的,“将文本发送到word”,最后将把整个PDF文件识别输出到word文件中。注意:MicrosoftOfficeDocumentImage可以非常准确的全文件识别转化中文、英文、表格,但是无法将图形输出到word,而是把文件中的所有图形单独形成一个个独立的图片文件,放在相同位置的一个相同名称的文件夹中,因此可用snagit软件将图形打开,然后复制到word中。(所有的识别软件都不能很好的处理图形的识别问题,MicrosoftOfficeDocumentImage的这种处理方法已经是非常好的解决这个问题了。)3)加密的Pdf文件:先下载解密软件,解密后在参看1),2)4)繁体pdf文件:用2)的方法识别到word后,用word中的“工具”--“语言”---“中文繁简转换”2、让JPG上的文字转换到WORD中在日常工作中,我们可能会遇到需要把扫描后的表格或文章再重新修改或排版,然而大家都知道,扫描后的文件格式是图片格式.一般情况下只有高档点的扫描仪可以直接选择扫描成PDF后者WORD格式.但是如果我们只有普通的扫描仪,而又要做到修改扫描后的文档,现在我就来教大家怎么在条件限制下,达到我们的目的.首先我们要准备好OFFICE2003,然后打开OFFCIE工具中的MicosoftOfficeDocumentScanning工具,设置完后,我们就可以在需要修改的图片上右击,选择打印,然后一直下一步,知道选择打印机时,选择MicosoftOfficeDocumentImageWriter,然后将图片打印到文件扩展名为mdi格式的图片格式.打开后选择菜单工具中的"将文本发送到WORD".就是这么简单方便3、caj文件的识别:1)局部文字识别:直接使用caj浏览器的ocr2)全文件识别:打印到MicrosoftOfficeDocumentImageWriter打印机,后面和上面的2)操作一样3)博硕论文全文下载:在线阅读博硕论文,待可以看到最后一页后,不要关闭caj浏览器,到caj安装目录下cache中找到一个较大的文件,拷贝到其他位置即可。然后使用2)全部转化为word。4、超星文件的识别:1)局部文字识别:直接使用超星浏览器的ocr2)全文件识别:打印到MicrosoftOfficeDocumentImageWriter打印机,后面和上面的2)操作一样,要注意的是,超星打印功能有点区别,因为超星是目录和全文分开的,所以打印时,需要分别把目录和正文识别到word中,在合并到一起。打印时要填入打印页码从1到最后一页,不要选择打印全部。此外在打印选项中,还要将页面比例设成真实大小,而不是整宽。注意:识别速度比其他格式要慢很多,请保持耐心,但是最后当你看到轻松的生成全本书的word版本时,你会欣喜若狂的,呵呵。我的试验结果是一本280页的书,识别需要几分钟的时间。3)超星相对比较麻烦一些,如果还有问题,可以先把超星打印成完整的pdf文件,然后在用1、的方法转成word5、其他情况下的识别:使用snagit软件将任何形式的文字可以变成图片,例如使用snagit将屏幕拷贝成图片,然后右键点击图片文件,用microsoftOfficeDocumentImage打开图形,其他和2)一样。注意:其他的各种识别软件请不要在用,因为要么只能识别中文,要么只能识别英文,要么不能识别整个文件,要么不能识别屏幕拷贝图像,要么识别误差很大,要么不能识别表格,要么需要注册,要么识别速度很慢,要么使用不便(和word结合不紧),这些软件包括:紫光ocr,万方pdfocr,尚书,汉王,ScanSoftPDFConverter,pdf2word,以及各种被推荐的软件等等,我都装过,现在都像垃圾一样删除了。只要安装了acrobat专业版,snagit,office2003,现在你可以完美的做任何事,最重要的是这几个软件很好得到。针对一些问题的补充:经过一些试验,发现microsoftOfficeDocumentImage存在一些不稳定的问题,例如在用caj打印到MicrosoftOfficeDocumentImageWriter打印机时,发现用caj5.5版本比较快,(caj5.5不能加升级补丁),而caj5.0有时出现假死机。另外页面显示大时,转化的识别率较高。如果页数多的文件,包括超星,如果有问题,可以分多次转化。再次补充:1、由于虚拟打印到MicrosoftOfficeDocumentImageWriter比较慢,并且形成的虚拟文件很大,1本200多页的书大约是60M,因此会严重影响机器的运行速度和C盘空间以及内存空间,建议配置好的机器一次转化不要超过200页,配置差的不要超过100页,同时打印时在右下角系统栏中会出现打印机图,你可以双击,看到打印任务的进度,以免以为死机了。另外转化完成后请删除c:\windows\temp目录下的虚拟打印文件,否则你的c盘很快会被用光。2、建议如果发生打印到MicrosoftOfficeDocumentImageWriter很慢或者假死的情况,可以先打印到snagit虚拟打印机,会自动生成tiff文件,速度比MicrosoftOfficeDocumentImageWriter快,然后在snagit中,选择打印机为MicrosoftOfficeDocumentImageWriter打印机,(相当于再打印到MicrosoftOfficeDocumentImageWriter打印机),然后选择snagit---outputs下的printer,然后选择snagit----file----finishoutput,即可生成msi文件,其他一样。

以下为示例:

a<-rnorm(50)

a<-sort(a)

pdf("d:/demo.pdf")

plot(a,type="b",col="red")

hist(rnorm(40))

dev.off()

在Windows环境下如何编写R程序包,即生成供linux环境编译运行的tar.gz文件,也生成供windows下使用的.zip文件呢?其实并不复杂,只要下载一些工具软件,按照相应的步骤填写相应的“表格”,继而运行一些简单的指令,就可以生成R的程序包了。

编写R程序包通常包括以下几步:

(1) 工具软件Rtools的安装和备选软件的安装。

(2) r脚本的准备,也就是用来生成程序包的函数脚本。

(3) 利用R中自带的package.skeleton()函数,生成制作包所需要的Description 文件和帮助文件帮助文件.rd。

(4) 编辑该函数生成的Description 文件和帮助文件.rd

(5) 在windows cmd的命令行中输入相应的命令,生成zip文件或者.tar.gz

下面我们来一起建立只有一个函数的R程序包,来详细说明:

一 工具软件安装和配置

制作r包的工具软件包括Rtools,HTML编译器,MikTeX 或Cte等(备选软件不一定要安装):

1 工具软件安装

(1)Rtools(制作R包的主要工具)

Rtools是在windows下制作R包的一系列工具,其中包括

1) CYGWIN 在Windows下模拟UNIX环境

2) MinGW编译器,可用来编译C和Fortran语言。

3) Perl

下载地址: http://www.murdoch-sutherland.com/Rtools/

(2) 微软HTML编译器(备选):

用来从源文件生成HTML格式的帮助文件

下载地址:http://go.microsoft.com/fwlink/?LinkId=14188

(3) MikTeX 或CteX(备选)

用来生成PDF格式的帮助文件

下载地址:http://www.miktex.org/ www.ctex.org/

分别按照要求安装好。

2 设置文件启动路径:

我的电脑>属性>高级>环境变量>系统变量 PATH一项,点击“编辑”,检查是否具有以下路径,如果没有,需要手工添加:

c:\Rtools\binc:\Rtools\perl\binc:\Rtools\MinGW\binC:\CTEX\MiKTeX\miktex\binC:\CTEX\CTeX\ctex\binC:\CTEX\CTeX\cct\binC:\CTEX\CTeX\ty\binC:\CTEX\Ghostscript\gs8.64\binC:\CTEX\GSview\gsviewC:\CTEX\WinEdtC:\Program Files\R\R-2.9.0\bin\

设置启动路径的目的是在cmd命令行可以直接调用相应的exe文件。

如果只是简单制作一个个人使用的包,只需将c:\Rtools\binc:\Rtools\perl\binc:\Rtools\MinGW\bin添加到系统路径即可

二 R脚本的准备

假如现在我们已经有了一个编好的R函数,用来给出回归的精确结果,存成了r脚本的格式,文件名为linmod.r

其内容如下所示,那么该如何制作R程序包呢?

linmod<- function(x, y)

{

## compute QR-decomposition of x

qx <- qr(x)

## compute (x'x)^(-1) x'y

coef <- solve.qr(qx, y)

## degrees of freedom and standard deviation of residuals

df <- nrow(x)-ncol(x)

sigma2 <- sum((y - x%*%coef)^2)/df

## compute sigma^2 * (x'x)^-1

vcov <- sigma2 * chol2inv(qx$qr)

colnames(vcov) <- rownames(vcov) <- colnames(x)

list(coefficients = coef,

vcov = vcov,

sigma = sqrt(sigma2),

df = df)

}

三 R包框架的准备

1 生成准备文件

登陆R :开始>所有程序>R>R.2.9.0

(1)清除内存中的对象:

rm(list=ls())

(2)设定工作目录,这里设定为 c:/pa

setwd("c:/pa")

(3)将制作包的源文件 linmod.r拷贝到c:/pa/文件夹下,

之后输入:

package.skeleton(name="linmod",code_files="c:/pa/linmod.r")

此时,R控制台中显示

Creating directories ...

Creating DESCRIPTION ...

Creating Read-and-delete-me ...

Saving functions and data ...

Making help files ...

Done.

Further steps are described in './linmod/Read-and-delete-me'.

>

可以看到c:/pa文件夹下新出现了一个linmod文件夹

该文件夹下的内容就是R包的框架,包括data文件夹,man文件夹,只要按要求将其填写完整,再进行相应的编译即可。

首先查看Read-and-delete-me文件

文件内容如下:

* Edit the help file skeletons in 'man', possibly combining help

files for multiple functions.

* Put any C/C++/Fortran code in 'src'.

* If you have compiled code, add a .First.lib() function in 'R' to

load the shared library.

* Run R CMD build to build the package tarball.

* Run R CMD check to check the package tarball.

Read "Writing R Extensions" for more information.

大致意思如下:

可以man文件夹下编辑帮助文件

C/C++/Fortran 的源代码应该放入src文件夹下

需要在登录时载入包

可以运行R CMD建立和检查相应的包

查看更多信息,应该阅读Writing R Extensions

2 编辑Description文件和rd文件

(1) Description文件的编辑

按照提示,填好各项

Package: linmod

Type: Package

Title: test for linear regression

Version: 1.0

Date: 2009-07-20

Author: helixcn

Maintainer: helixcn [email protected]>

Description: To give the exactly results of linear regression.

License: GNU 2 or later

LazyLoad: yes

(2)man文件夹中.rd文件编辑

man文件夹中包含两个文件 linmod.Rd和linmod-package.Rd,分别是对linmod()函数和linmod包的介绍,下面逐项填写:

1) linmod.Rd

\name{linmod}

\Rdversion{1.1}

\alias{linmod}

%- Also NEED an '\alias' for EACH other topic documented here.

\title{

linear regression

}

\description{

to give the more exactly results of linear regression

}

\usage{

linmod(x, y)

}

%- maybe also 'usage' for other objects documented here.

\arguments{

\item{x}{

a numeric design matrix for the model

}

\item{y}{

a numeric vector of responses

}

}

\details{

%% ~~ If necessary, more details than the description above ~~

}

\value{

%% ~Describe the value returned

%% If it is a LIST, use

%% \item{comp1 }{Description of 'comp1'}

%% \item{comp2 }{Description of 'comp2'}

%% ...

}

\references{

Friedrich Leisch,2008 Creating R Packages: A Tutorial

}

\author{

helixcn

}

\note{

Please read Friedrich Leisch,2008

}

%% ~Make other sections like Warning with \section{Warning }{....} ~

\seealso{

%% ~~objects to See Also as \code{\link{help}}, ~~~

}

\examples{

##---- Should be DIRECTLY executable !! ----

##-- ==> Define data, use random,

##-- or do help(data=index) for the standard data sets.

## The function is currently defined as

function (x, y)

{

qx <- qr(x)

coef <- solve.qr(qx, y)

df <- nrow(x) - ncol(x)

sigma2 <- sum((y - x \%*\% coef)^2)/df

vcov <- sigma2 * chol2inv(qx$qr)

colnames(vcov) <- rownames(vcov) <- colnames(x)

list(coefficients = coef, vcov = vcov, sigma = sqrt(sigma2),

df = df)

}

}

% Add one or more standard keywords, see file 'KEYWORDS' in the

% R documentation directory.

\keyword{ ~kwd1 }

\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line

2)linmod-package.Rd

\name{linmod-package}

\Rdversion{1.1}

\alias{linmod-package}

\alias{linmod}

\docType{package}

\title{Linear Regression Modification}

\description{to Give the more exactly output of linear regression rather than R default}

\details{

\tabular{ll}{

Package: \tab linmod\cr

Type: \tab Package\cr

Version: \tab 1.0\cr

Date: \tab 2009-07-20\cr

License: \tab GNU 2.0 or later\cr

LazyLoad: \tab yes\cr

}

~~The aim of the package was to give the more exactly output of linear regression~~ linmod~~

}

\author{helixcn

Maintainer: helixcn [email protected]>}

\references{

Friedrich Leisch,2008,Creating R Packages: A Tutorial

}

\seealso{lm}

\examples{

data(cats, package="MASS")

mod1 <- linmod(Hwt~Bwt*Sex, data=cats)

mod1

summary(mod1)

}

四 通过cmd创建R包

开始>运行>cmd

键入 cd c:\pa\ 将工作目录转移到c:/pa下

键入 Rcmd build --binary linmod 制作window zip包

键入 Rcmd build linmod 制作linux平台下可运行的tar.gz包

命令运行完之后可以发现,在c:/pa/文件夹下分别生成了linmod.zip和linmod.tar.gz压缩包。

注意R CMD 系列命令是在windows控制台下运行,而非R控制台

参考网址

[1]http://www.robjhyndman.com/researchtips/building-r-packages-for-windows/

[2]http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf

[3]http://faculty.chicagobooth.edu/peter.rossi/research/bayes%20book/bayesm/Making%20R%20Packages%20Under%20Windows.pdf

[4]http://www.biostat.uni-hannover.de/teaching/fallstudien/schaarschmidt2.pdf