相关疑难解决方法(0)

诀窍来管理R会话中的可用内存

人们用什么技巧来管理交互式R会话的可用内存?我使用下面的函数[根据Petr Pikal和David Hinds在2004年的r-help列表中的帖子]列出(和/或排序)最大的对象,偶尔列出rm()其中的一些.但到目前为止,最有效的解决方案是在具有充足内存的64位Linux下运行.

人们想分享其他任何好玩的伎俩吗?请发一个帖子.

# improved list of objects
.ls.objects <- function (pos = 1, pattern, order.by,
                        decreasing=FALSE, head=FALSE, n=5) {
    napply <- function(names, fn) sapply(names, function(x)
                                         fn(get(x, pos = pos)))
    names <- ls(pos = pos, pattern = pattern)
    obj.class <- napply(names, function(x) as.character(class(x))[1])
    obj.mode <- napply(names, mode)
    obj.type <- ifelse(is.na(obj.class), obj.mode, obj.class)
    obj.size <- napply(names, object.size)
    obj.dim <- t(napply(names, function(x)
                        as.numeric(dim(x))[1:2]))
    vec <- is.na(obj.dim)[, 1] & (obj.type != "function")
    obj.dim[vec, 1] <- napply(names, length)[vec]
    out <- data.frame(obj.type, …
Run Code Online (Sandbox Code Playgroud)

memory-management r

480
推荐指数
19
解决办法
10万
查看次数

在R中将默认CRAN镜像设置为永久

如何在R中永久设置特定的CRAN镜像?

我想在我的笔记本电脑中永久设置它,这样当我这样做时install.packages(),它不会再问我哪个镜子可供选择.

r cran r-faq

91
推荐指数
1
解决办法
4万
查看次数

如何禁用"保存工作区图像?" 在R中提示?

当我退出交互式R shell时,每次都会显示一个恼人的提示:

>
>
Save workspace image? [y/n/c]: n

我总是回答"不",因为如果我想保存我的工作,我会尝试退出之前这样做.

如何摆脱提示?


注意:见 ?save.image

r read-eval-print-loop

88
推荐指数
8
解决办法
1万
查看次数

在R命令行中显示时钟

我想知道是否有办法在R命令行中显示当前时间,就像在MS DOS中一样,我们可以使用

Prompt $T $P$G
Run Code Online (Sandbox Code Playgroud)

在每个提示行中包含时钟.就像是

options(prompt=paste(format(Sys.time(), "%H:%M:%S"),"> "))
Run Code Online (Sandbox Code Playgroud)

会这样做,但它会在它设置时固定.我不确定如何让它自动更新.

time r clock

42
推荐指数
4
解决办法
6683
查看次数

我在R的哪个地方永久存储我的自定义功能?

我有几个自定义函数,我经常在R中使用.而不是在每个脚本中使用这个文件(或其中的部分),是否有一些方法可以将它添加到基本R文件中,这样当我使用R时它们总是可用的?

r

29
推荐指数
3
解决办法
8501
查看次数

禁用/禁止用于R中CRAN镜像选择的tcltk弹出窗口

我的问题类似于之前发布的问题,但从未真正回答过:

在R中禁用GUI,图形设备

我不喜欢用于CRAN镜像选择的R tcltk弹出窗口.当他们在两个包中搜索函数的帮助时,他们还会弹出选择包.

有没有办法在不完全禁用X11的情况下禁用这些窗口?我仍然希望plot()命令正常工作,但禁用永远加载远程连接的小选择菜单.

例如,如果您使用ssh,但不使用-X,那么镜像选择只是R中的文本,您键入一个数字.它很快.这就是我想要的,但保留X11的情节b.

任何人都知道如何维护图形窗口,但禁用"选择"tcltk窗口?

x11 user-interface r popup cran

27
推荐指数
2
解决办法
3514
查看次数

R undebug所有功能

考虑我们已经调用debug()了几个函数来对它们进行断点.当我们找到并解决这个bug时,是否还有一个命令undebug()标记的所有函数debug()

这是一个很好的基准,看看你提出的方法是否真的完美:

> library(limma) # bioconductor
> debug(read.ilmn)
> read.ilmn("a.txt") # No problem if this file does not exist
Browse[2]> debug(.read.oneilmnfile) # This is the debug browser for read.ilmn()
Browse[2]> Q # To exit debug browser
> undebug.all() # Here run your proposed function to undebug everything!
> read.ilmn("a.txt")
# Now if the debug browser is not started, you are lucky to pass this test!
Run Code Online (Sandbox Code Playgroud)

您可能会在下面看到接受的答案.任何情况下,这个答案不起作用,或更干净的版本是非常受欢迎的.

debugging r

26
推荐指数
3
解决办法
2914
查看次数

如何在OSX上自动加载R中的设置?如何找到R_HOME,配置Rprofile.site等?

我有一个Macintosh,我试图自动加载包,自制函数,并在每次启动R时使用修改后的设置.我相信这可以通过一个名为Rprofile.site的文件来完成,并通过创建函数.First和.Last在那个文件中.

一个问题是,我不知道我的R_HOME目录是什么,它用于什么,或者它是否存在.我找到了两个功能,我认为它们都给了我它的位置,但我得到了不同的结果.

这是第一个

> Sys.getenv("R_home")
R_home 
    ""
Run Code Online (Sandbox Code Playgroud)

第二个

> R.home()
[1] "/Library/Frameworks/R.framework/Resources"
Run Code Online (Sandbox Code Playgroud)

据我所知,我的机器上甚至不存在第二个目录.我目前正在从我的应用程序目录运行R.

r startup

16
推荐指数
2
解决办法
1万
查看次数

从数据框中删除多个元素的标准方法

从数据框中删除多个元素的最佳方法是什么?在我的情况下,我在数据框架中拥有该月的所有日期,并且想要删除几天.像下面这样的东西可以运行一天.

m[m$date!="01/31/11",]
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试类似的东西

m[m$date!=c("01/31/11","01/30/11"),]
Run Code Online (Sandbox Code Playgroud)

我收到一条警告信息

Warning message:
In `!=.default`(m$date, c("01/31/11", "01/30/11")) :
longer object length is not a multiple of shorter object length
Calls: [ ... [.data.frame -> Ops.dates -> NextMethod -> Ops.times -> NextMethod
Run Code Online (Sandbox Code Playgroud)

它似乎工作了两天,但如果我将01/29/11添加到矢量它显示所有日子,但是01/31/11.

r

14
推荐指数
2
解决办法
1万
查看次数

在R包NAMESPACE中抑制包加载消息

我正在导入一个名为"KernSmooth"的软件包,并希望启动消息不显示...

在我的描述文件中:

Package: test
Title: Test
Author: Mike
Description: Test
Maintainer: Mike
Depends: R(>= 2.10.0)
Imports: KernSmooth
Run Code Online (Sandbox Code Playgroud)

和我的命名空间文件:

import(KernSmooth)
Run Code Online (Sandbox Code Playgroud)

但是当我加载包时,我仍然得到启动消息:

KernSmooth 2.23 loaded
Copyright M. P. Wand 1997-2009
Run Code Online (Sandbox Code Playgroud)

我唯一的选择是不要在NAMESPACE中导入它并使用它

suppressMessages(require(KernSmooth)) 
Run Code Online (Sandbox Code Playgroud)

在我的R函数内避免消息?

namespaces r

8
推荐指数
1
解决办法
2758
查看次数