Home Comments Thread
New Thread

7 Comments

giscus-bot giscus-bot 2022-12-16 18:19:45
访客 *tengfei* @ 2010-03-26 08:19:02 写道:

这个东西好,我正头疼平时有时候整理自己格式的时候,用tab实在恼人,若问下这个包有没有command line的方法,可以直接比如 formatR(file='XXX.R'), 然后就覆盖了源文件,或者formatRDir(dir='xxx'),所有都给整理了。这样就更方便了。。。我是不是有点贪婪啊,嘿嘿

giscus-bot giscus-bot 2022-12-16 18:19:52
访客 *yixuan* @ 2010-03-26 11:48:28 写道:

核心的算法在animation包的tidy.source()中,你可以再加上一些write()之类的函数来实现。

@yixuan

yihui yihui 2022-12-16 18:19:53

如楼上所说,你可以sapply(list.files(YOUR.DIR, pattern = '.(R|r)'), function(x) tidy.source(x, file = x)),这样就能把YOUR.DIR文件夹下的所有R代码文件都清理了,不过这种方式会覆盖原文件,如果不希望覆盖的话,可以给file另外的文件名,如sapply(list.files(YOUR.DIR, pattern = '.(R|r)'), function(x) tidy.source(x, file = paste('tidy_', x, sep = '')))

——原帖发布于 2010-03-28 00:35:32

giscus-bot giscus-bot 2022-12-16 18:19:54
访客 *tengfei* @ 2010-03-28 03:59:08 写道:

谢谢各位的耐心解释!!我试试去~~

giscus-bot giscus-bot 2022-12-16 18:19:46
访客 *Feng Li* @ 2010-03-26 16:04:39 写道:

不错,为什么这样做呢?

## file tidy.R
options(keep.source = FALSE)
source("your_code.R")
dump(ls(all=TRUE), file = "new.your_code.R")

然后

R --vanilla < tidy.R 

@feng-li

yihui yihui 2022-12-16 18:19:52

你的tidy.R只是执行your_code.R代码并以dump的方式保存结果,没有整理源代码的功能。source()函数的keep.source选项如果为TRUE(默认),那么source(..., echo = TRUE)会给你去掉注释的R代码;若keep.source = FALSE,那么source()会给你原样返回代码,也就是没有经过清理的代码(注释语句不会被去掉)。要么让R整理代码并丢弃注释,要么不整理代码,tidy.source()解决的就是这个两难问题,既保留注释语句,又能整理代码。

——原帖发布于 2010-03-28 00:32:06

giscus-bot giscus-bot 2022-12-16 18:19:47
访客 *wills.an* @ 2010-03-28 08:57:53 写道:

有几天没来这里看看了,发现博客的主题换了啊。

老谢,这个主题叫什么名字?

这个主题挺利索的呀。

yihui yihui 2022-12-16 18:19:55

叫Suffusion,很强大的一个主题,可定制的选项非常多

——原帖发布于 2010-03-28 22:27:40

giscus-bot giscus-bot 2022-12-16 18:19:48
访客 *午夜兰花手札* @ 2010-04-02 07:17:44 写道:

很实用。尤其是处理遗留代码时。

giscus-bot giscus-bot 2022-12-16 18:19:49
访客 *yixuan* @ 2010-04-15 12:12:12 写道:

乱码的问题似乎可以用Encoding()函数解决,在有乱码的地方设置成UTF-8就行了,我在Windows下测试情况还好,修改的源码在这里。有个小问题是使用gfile()后R里面会自动打印出路径,这个乱码还没法解决。

@yixuan

yihui yihui 2022-12-16 18:19:56

奇怪了,在我的Win上这个乱码问题始终没法解决,我猜也是Encoding()iconv()之类的函数,但就是不成功。只有一种情况可以,就是Sys.setlocale(locale = 'C'),但这样设置之后中文注释最后会多出来一个括号),不知道为什么……

——原帖发布于 2010-04-16 07:44:27

giscus-bot giscus-bot 2022-12-16 18:19:56
访客 *yixuan* @ 2010-04-16 08:03:08 写道:

我的R是用默认的中文界面,跟这个有关吗?

@yixuan

yihui yihui 2022-12-16 18:19:57

我换成了中文界面也没用。怪哉怪哉……

> sessionInfo()
R version 2.10.1 (2009-12-14) 
i386-pc-mingw32 

locale:
[1] LC_COLLATE=Chinese_People's Republic of China.936 
[2] LC_CTYPE=Chinese_People's Republic of China.936   
[3] LC_MONETARY=Chinese_People's Republic of China.936
[4] LC_NUMERIC=C                                      
[5] LC_TIME=Chinese_People's Republic of China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] gWidgetsRGtk2_0.0-64 formatR_0.1-4        animation_1.1-1      MASS_7.3-5          
[5] gWidgets_0.0-40     

loaded via a namespace (and not attached):
[1] RGtk2_2.12.18 tools_2.10.1 

——原帖发布于 2010-04-16 08:21:53

giscus-bot giscus-bot 2022-12-16 18:19:50
访客 *vulpecula* @ 2010-04-27 00:22:10 写道:

用emacs吧, 不管什么都给你整理好了 ;-)

yihui yihui 2022-12-16 18:19:58

我也是一直想用Emacs+ESS,不过这东西对新手来说实在有点门槛,尝试多干次,都以放弃告终……

——原帖发布于 2010-05-01 20:17:48

giscus-bot giscus-bot 2022-12-16 18:19:59
访客 *vulpecula* @ 2010-05-01 20:24:26 写道:

Emacs的设置在windows下面是有些麻烦, 不过在Mac或者Linux下面几乎不用操心, 装上就能用.

giscus-bot giscus-bot 2022-12-16 18:19:51
访客 *cangfengzhe* @ 2014-12-03 07:44:42 写道:

前辈,我刚刚用formatR发现中文乱码,可是之前我也经常用这个包并没有乱码?不知道为什么这次乱码了

yihui yihui 2022-12-16 18:20:00

library(formatR); sessionInfo()

Originally posted on 2014-12-03 19:10:02

giscus-bot giscus-bot 2022-12-16 18:20:01
Guest *cangfengzhe* @ 2014-12-04 01:46:02 originally posted:

R version 3.1.2 (2014-10-31)

Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:

[1] LC_COLLATE=Chinese (Simplified)_People's Republic of China.936

[2] LC_CTYPE=Chinese (Simplified)_People's Republic of China.936

[3] LC_MONETARY=Chinese (Simplified)_People's Republic of China.936

[4] LC_NUMERIC=C

[5] LC_TIME=Chinese (Simplified)_People's Republic of China.936

attached base packages:

[1] stats graphics grDevices utils datasets methods base

other attached packages:

[1] formatR_1.0

loaded via a namespace (and not attached):

[1] tools_3.1.2

options('encoding')

$encoding

[1] "native.enc"

yihui yihui 2022-12-16 18:20:02

没有可重复的栗子就没有真相。

——原帖发布于 2014-12-05 02:08:50

Sign in to join the discussion

Sign in with GitHub