小编Dav*_*uer的帖子

如何从plyr重命名**ply函数的输出行/列?

我想在plyr包中声明**ply函数中的row/col输出名称ldply.

例如,

我有一个列表,foo我想转换为a data.frame并截断有效数字signif()

 foo <- list(var.a = runif(3), var.b = runif(3), var.c=runif(3))
Run Code Online (Sandbox Code Playgroud)

我现在拥有的是什么

q <- ldply(foo, signif, 2)
colnames(dq)[1] <- c('id', 'q1', 'q2','q3')
rownames(dq) <- dq$id
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法?

前两个问题都问如何使用plyr重命名COLS使用plyr,但我想我的问题是不同的.名称可以与另一个功能同时声明(或者如果我正确地这样做)?这是一个有价值的功能要求吗?

r plyr

5
推荐指数
1
解决办法
486
查看次数

如何让Emacs ess将查询字符串(在引号内)识别为代码?

背景

我有一个函数dbquery,简化了从R内部查询MySQL数据库的过程.

dbquery <- function(querystring) {
  dvr <- dbDriver("MySQL")
  con <- dbConnect(dvr, group = "databasename")
  q <- dbSendQuery(con, querystring)
  data <- fetch(q, n = -1)
  return(data)
}    
Run Code Online (Sandbox Code Playgroud)

因此我可以发送:

dbquery(querystring = "select field_1, field_2, field_3 
                       from table_a join table_b on this = that 
                       join table_c on that = something 
                       where field_4 in (1,2,3);"
Run Code Online (Sandbox Code Playgroud)

但是,变量querystring必须包含在引号内.这使得Emacs ESS不会像在SQL模式下那样很好地缩进我的查询 - 或者甚至像没有引号但只是在ESS-R模式下那样.

是否有可能让ESS这样做?也许通过编写函数使它接受没有引号的查询(并在函数中添加引号),或者可能在.emacs或ess.el中添加一些东西?

emacs r ess

5
推荐指数
1
解决办法
364
查看次数

当我尝试建模自相关时,为什么会出现错误,即使在Pinheiro和Bates(2009)中完全遵循这个例子?

以下是S和S-Plus238混合效果模型的摘录:


在此输入图像描述 在此输入图像描述


这是我用来重新创建此示例的代码:

library(nlme)
spatDat <- data.frame(x = c(0,0.25,0.5,0.75,1), y = c(0,0.25,0.5,0.50,0.75))
cs1Exp <- corExp(1, form = ~x+y)
cs1Exp <- initialize(cs1Exp, spatDat)
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我收到此错误:

Error in getClass(Class) : 
  c("\"corExp\" is not a defined class", "\"corSpatial\" is not a defined class", "\"corStruct\" is not a defined class")
In addition: Warning message:
In if (!is.na(match(Class, .BasicClasses))) return(newBasic(Class,  :
  the condition has length > 1 and only the first element will be used
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?


附录

R version 2.13.0 (2011-04-13) …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
2
解决办法
459
查看次数

如何从emacs中提交对bzr分支的更改?

我在emacs中进行大部分开发,并使用bzr进行版本控制.我推断这c-x v =相当于bzr diff,但我不清楚如何从emacs中提交,或者各种bzr命令如何映射到emacs键绑定.任何人都可以建议最好的方法或指向我的教程吗?

emacs bazaar

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

为什么'*'在我的.Rbuildignore文件中不能作为perl regexp工作?

当我尝试在我的.Rbuildignore文件中构建包含以下内容的包时,

*pdf                                                                            
*Rdata  
Run Code Online (Sandbox Code Playgroud)

我得到错误:

readLines(ignore_file)中的警告:在'/home/user/project/.Rbuildignore'上找到不完整的最后一行

无效的正则表达式'*pdf'

我以为'*'是一个或多个角色的通配符?

perl r

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

保留R数据框中的数值精度?

当我从数字向量创建数据框时,R似乎截断了我在分析中所需的精度以下的值:

data.frame(x=0.99999996)
Run Code Online (Sandbox Code Playgroud)

返回1(*但请参阅更新1)

我在拟合时卡住了,spline(x,y)并且当y变化时,由于四舍五入,两个x值被设置为1.我可以解决这个问题,但我更愿意使用标准解决方案(如果有的话).

这是一个示例数据集

d <- data.frame(x = c(0.668732936336141, 0.95351462456867,
0.994620622127435, 0.999602102672081, 0.999987126195509, 0.999999955814133,
0.999999999999966), y = c(38.3026509783688, 11.5895099585560,
10.0443344234229, 9.86152339768516, 9.84461434575695, 9.81648333804257,
9.83306725758297))
Run Code Online (Sandbox Code Playgroud)

以下解决方案有效,但我更喜欢不太主观的东西:

plot(d$x, d$y, ylim=c(0,50))
lines(spline(d$x, d$y),col='grey') #bad fit
lines(spline(d[-c(4:6),]$x, d[-c(4:6),]$y),col='red') #reasonable fit
Run Code Online (Sandbox Code Playgroud)

更新1

*自发布此问题以来,我意识到1即使数据框仍包含原始值,这将返回,例如

> dput(data.frame(x=0.99999999996))
Run Code Online (Sandbox Code Playgroud)

回报

structure(list(x = 0.99999999996), .Names = "x", row.names = c(NA, 
-1L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

更新2

在使用dput发布这个示例数据集和Dirk的一些指针之后,我可以看到问题不在于截断x值,而在于我用来计算的模型中的数值误差的限制y.这证明了丢弃一些等效数据点(如示例红线所示).

r

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

如何grep grep返回的文件内容?

当我查找带有错误消息的日志文件时grep error *log,它会返回一个日志文件列表

$grep error *log

Binary file out0080-2011.01.07-12.38.log matches
Binary file out0081-2011.01.07-12.38.log matches
Binary file out0082-2011.01.07-12.38.log matches
Binary file out0083-2011.01.07-12.38.log matches
Run Code Online (Sandbox Code Playgroud)

但是,这些是文本,而不是二进制文件.

我不确定为什么这些被认为是二进制,前几行包含以下非错误消息:

out0134
-catch_rsh /opt/gridengine/default/spool/compute-0-17/active_jobs/327708.1/pe_hostfile
compute-0-17
Run Code Online (Sandbox Code Playgroud)

我想grep 返回文件的内容以获取错误消息,并返回带有消息的文件的名称.

我如何grep返回的文件的内容,而不是这个返回的文件列表,如grep error *log | grep foo

bash grep

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

如何在bash中"尝试做某事然后检测它是否失败"?

在回答上一个问题时:

我怎样才能使用'我有root权限吗?' 作为bash的条件?

建议"尝试做某事并检测是否失败"而不是"检查权限然后做某事"

我发现了很多理由,例如:

但是,我发现很少有关于如何在bash中实现try/catch的明确信息.我猜它太容易了,除了我发现的东西看起来相当复杂 - 使用函数或其他脚本:

我对bash相对比较新,但我觉得没有类似于try其他语言中的函数的简单函数.

具体来说,我想做以下事情:

CMD=`./path/to/script.sh`
if [ <echo $CMD | grep error is true> ]; then
        .. do this ..
else 
        .. do that ..
fi   
Run Code Online (Sandbox Code Playgroud)

bash if-statement try-catch

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

如何使字符向量的内容看起来像R中的文件?

jags.model期望包含BUGS模型的文件名作为其第一个参数.为了在一个脚本中包含所有内容,我有时会使用该writeLines命令将BUGS模型写入文件.例如,

library(rjags)
writeLines("
model {
    for (i in 1:length(Y1)) {
        Y1[i] ~ dnorm(Beta0, Beta1)
    }
    Beta0 ~ dunif(1, 5)
    Beta1 ~ dunif(0, 10000)
}
"
, "m1.jags")

mod1 <- jags.model("m1.jags", data=Data)
Run Code Online (Sandbox Code Playgroud)

但是,如果我有我的选择,我真的不希望创建该文件.

有没有办法在R中创建包含文本的某种虚拟文件?

我想可能有某种方法使用R连接以某种方式将字符串写入变量以模仿文件的功能.

我正在思考的粗略伪代码:

m1.jags <- "model {
        ...
    }
    "
jags.model(SomeRCommand(m1.jags), data=Data)
Run Code Online (Sandbox Code Playgroud)

r jags

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

我可以在R中写入和访问内存中的文件吗?

我正在为导入xml文件的R函数编写测试settings.xml.

目前,当我为依赖于内容的函数编写测试时foo.xml,包括read.settings以下示例中的函数:

writeLines("<fee><fi><\fi>\fee>", con = "/tmp/foo.xml")
settings <- read.settings("/tmp/foo.xml")
file.remove("/tmp/foo.xml")
Run Code Online (Sandbox Code Playgroud)

但是,出现了许多与使测试系统无关的问题.例如,在测试目录/tmp/read.settings()留下孤立文件等可能无法写入或出错.这是一个简单的例子,我可以想办法解决这些问题,但我记得在回答上一个问题时有这样的解决方案,我现在找不到,其中con不是文件而是内存中的对象.我确信在很多情况下,不实际编写文件是有用的.

  • 有没有办法编写和访问仅存在于内存中的伪文件?
  • 记录的功能在哪里?
    ?connections似乎是一个很好的领导,但我不清楚如何使用提供的信息

跟进(但不要太开放)

  • 除了上面描述的内容之外,这种功能的主要用途是什么?
  • 是否应该使用此功能的情况?

r

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

标签 统计

r ×7

bash ×2

emacs ×2

bazaar ×1

ess ×1

grep ×1

if-statement ×1

jags ×1

perl ×1

plyr ×1

try-catch ×1