小编jog*_*ogo的帖子

如何在没有X11的服务器上运行R,并避免破坏依赖性

我在一个大型EC2 Ubuntu实例上运行R 2.9,加载了RAM,但是没有终端.当我加载具有显示依赖性的库,如sqldf包时,我收到以下错误:

library(sqldf)
...
Loading required package: tcltk
Loading Tcl/Tk interface ... Error in fun(...) : couldn't connect to display "localhost:11.0"
Error : .onLoad failed in 'loadNamespace' for 'tcltk'
Error: package 'tcltk' could not be loaded
Run Code Online (Sandbox Code Playgroud)

这似乎是一个普遍的问题,我想知道其他人是如何解决它的.安装X11服务器不是理想的解决方案.

x11 r

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

为什么"+"不对R中的字符进行操作?

叫我懒,但我只是讨厌像往常一样打字paste("a","b",sep='').

我知道"(t)他是R.不管怎样,只有如何." (library(fortunes);(fortune(109)).所以,我的后续问题是:是否有可能轻易改变这种行为?

syntax r operators

22
推荐指数
2
解决办法
1108
查看次数

目前还没有什么有用的R包?

我一直在为R目前没有的一些常规工具开发一些R软件包:博客,报告交付,日志记录和日程安排.这让我想知道:人们希望 R中存在哪些最重要的东西,目前还没有?

我希望我们可以用它来查明一些差距,并可能协同工作.

packages r

21
推荐指数
6
解决办法
1796
查看次数

通过为每个组选择一行来折叠数据框

我试图通过从特定列中具有相同值的每组行中删除除一行之外的所有行来折叠数据框.换句话说,每组的第一行.

例如,我想转换它

> d = data.frame(x=c(1,1,2,4),y=c(10,11,12,13),z=c(20,19,18,17))
> d
  x  y  z
1 1 10 20
2 1 11 19
3 2 12 18
4 4 13 17
Run Code Online (Sandbox Code Playgroud)

进入:

    x  y  z
1   1 11 19
2   2 12 18
3   4 13 17
Run Code Online (Sandbox Code Playgroud)

我目前正在使用聚合来执行此操作,但是使用更多数据时性能是不可接受的:

> d.ordered = d[order(-d$y),]
> aggregate(d.ordered,by=list(key=d.ordered$x),FUN=function(x){x[1]})
Run Code Online (Sandbox Code Playgroud)

我尝试使用与此处相同的函数参数进行split/unsplit,但是unsplit抱怨重复的行号.

有可能吗?是否有一个R idiom将rle的长度向量转换为开始每次运行的行的索引,然后我可以用它来从数据帧中取出这些行?

r dataframe

20
推荐指数
4
解决办法
2万
查看次数

R中的函数可以返回两个向量吗?

R中的函数可以不返回一个,而是两个向量吗?

(我真的是以R开头,所以我可能会忽略一些简单的事情)

r function

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

将"by"对象转换为R中的数据框

我正在使用R中的"by"函数来切断数据框并将函数应用于不同的部分,如下所示:

pairwise.compare <- function(x) {
Nright <- ...
Nwrong <- ...
Ntied <- ...
return(c(Nright=Nright, Nwrong=Nwrong, Ntied=Ntied))
}
Z.by <- by(rankings, INDICES=list(rankings$Rater, rankings$Class), FUN=pairwise.compare)
Run Code Online (Sandbox Code Playgroud)

结果(Z.by)看起来像这样:

: 4 
: 357 
Nright Nwrong Ntied
     3      0     0
------------------------------------------------------------
: 8 
: 357 
NULL
------------------------------------------------------------
: 10 
: 470 
Nright Nwrong Ntied
     3      4     1 
------------------------------------------------------------ 
: 11 
: 470 
Nright Nwrong Ntied
    12      4     1
Run Code Online (Sandbox Code Playgroud)

我想要的是将此结果转换为数据框(不存在NULL条目),所以它看起来像这样:

  Rater Class Nright Nwrong Ntied
1     4   357      3      0     0
2    10   470      3      4 …
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

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

可以lapply不修改更高范围内的变量

我经常想做以下几点:

mat <- matrix(0,nrow=10,ncol=1)
lapply(1:10, function(i) { mat[i,] <- rnorm(1,mean=i)})
Run Code Online (Sandbox Code Playgroud)

但是,我希望mat里面会有10个随机数,但它有0个.(我并不担心rnorm部分.显然有一种正确的方法可以做到这一点.我担心会影响mat lapply的匿名函数)我可以不从lapply里面影响矩阵垫吗?为什么不?是否有R的范围规则阻止了这个?

r function lapply

15
推荐指数
2
解决办法
5837
查看次数

使R包在Windows和Linux中都能正常工作

我在R中编写了一个非常基本的包.事实上,我按照本教程创建了一个基本包.

我的包在linux中运行得很好.例如:

> install.packages("linmod", repos=NULL)
Warning in install.packages("linmod", repos = NULL) :
  argument 'lib' is missing: using '/home/jpgoel/R/i486-pc-linux-gnu-library/2.9'
* Installing *source* package ‘linmod’ ...
** R
** data
** preparing package for lazy loading
** help
*** installing help indices
 >>> Building/Updating help pages for package 'linmod'
     Formats: text html latex example 
** building package indices ...
* DONE (linmod)
> library(linmod)
> data(mod1)
> mod1
Call:
linmod.default(x = x, y = y)

Coefficients:
     Const        Bwt 
-0.3566624  4.0340627 

现在,我拿了我的"linmod"文件夹,将其复制到Windows XP,并尝试了以下内容:

> install.packages("C:\\Documents\ and\ Settings\\foo\\Desktop\\linmod",repos=NULL) …

r package

13
推荐指数
2
解决办法
6241
查看次数

库/包开发 - 加载时的消息

有没有办法在用户加载时显示消息library(myCustomLibrary)?加载后,我想显示一条消息,告诉用户如何运行所有测试功能.

r package

13
推荐指数
2
解决办法
1306
查看次数

如何在R中创建列表向量?

我有一个列表(tmpList),如下所示:

$op
[1] "empty"

$termset
$termset$field
[1] "entry"

$termset[[2]]
$termset[[2]]$explode
[1] "Y"
Run Code Online (Sandbox Code Playgroud)

这是一个列表,里面有一个列表.如果我将此列表添加到矢量

theOneVector = c(theOneVector, tmpList)
Run Code Online (Sandbox Code Playgroud)

现在结果向量的长度为2,因为列表的第一个条目("op")与tmpList分开.是否可以将完整的tmpList附加到此向量中?
我已经试过了

theOneVector = c(theOneVector, list(tmpList))
Run Code Online (Sandbox Code Playgroud)

它给出了一个长度为1的向量,但是使用列表周围的这个额外列表来访问列表的元素非常麻烦.(我认为,在一个句子中列出的太多了.)

任何帮助将不胜感激,
马丁

r list vector

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

标签 统计

r ×10

dataframe ×2

function ×2

package ×2

aggregate ×1

lapply ×1

list ×1

operators ×1

packages ×1

syntax ×1

vector ×1

x11 ×1