小编Mat*_*ert的帖子

有没有办法使用RStudio直接从工作区中编织降价?

我想知道我是否可以使用knitrmarkdown来创建一个动态报告,其中包含源自当前工作空间的对象.再现性不是问题.我也在这里读了这篇非常好的帖子.

但我仍然收到一条错误消息,抱怨无法找到特定对象.

1)假设我打开一个新的降价文档并保存.

2)编写一个引用lm我工作区中某个对象的块.呼叫summary(mylmobject)

3)编织它.

遗憾的是,生成了报告,但无法显示回归输出,因为无法找到该对象.注意,如果我只是将对象保存到.Rdata然后直接从markdown文件加载它,它通常工作.

有没有办法在当前工作区中使用R markdown中的对象?这对于非R人在继续工作的同时显示一些输出会非常好.

r rstudio knitr

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

如何显示NAs的索引?

我有一块显示NAs,但我无法弄明白.

try(na.fail(x))
> Error in na.fail.default(x) : missing values in object
# display NAs
myvector[is.na(x)]
# returns
NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

我从这个NA矢量的长度中得到的唯一的东西,当我试图跟踪我的代码中的错误导致的NA时实际上没有太大帮助.如何获得NA元素的索引?

我也尝试过:

subset(x,is.na(x))
Run Code Online (Sandbox Code Playgroud)

这具有相同的效果.

编辑:

y <- complete.cases(x)
x[!y]
# just returns another
NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

indexing r

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

R中的日志文件分析?

我知道还有其他工具,比如awstats或splunk,但是我想知道是否在R中进行了一些严肃的(网络)服务器日志文件分析.我可能不是第一个想到在R中做这个,但是R还有很好的可视化功能和漂亮的空间包.你知道吗?或者是否有一个R包/代码来处理可以构建的最常见的日志文件格式?或者这只是一个非常糟糕的主意?

r logfile-analysis

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

R中的懒惰评估是否受到影响?

我读了这个关于重命名对象的基本问题和@Shane对它的回答,指着我懒惰的评价.现在我想知道是否assign也懒得评价.就像这里一样:

assign("someNewName",someOldObject)
rm(someOldObject)
Run Code Online (Sandbox Code Playgroud)

为什么我想知道这样做的原因是以下用例:假设我有10K + R对象各自有两个属性叫originalNameadditionalName.现在我想编写一个函数,可以有效地让用户从一个名称切换到另一个名称,而不会丢失这两个属性.粗略喜欢这个......

编辑:基于@Hadley的输入我改变了我的代码.

switchObjectName <- function(x) {
  n1 <- attributes(x)$originalName
  n2 <- attributes(x)$additionalName
  objName <- deparse(substitute(x))
  if(objName == n1) {
    delayedAssign(n2,x,assign.env=.GlobalEnv)
  } else {
    delayedAssign(n1,x,assign.env=.GlobalEnv)
  }
  rm(list=c(objName),envir=.GlobalEnv)    
}
Run Code Online (Sandbox Code Playgroud)

这种方法效果很好,但是我说这rm句话是正确的.rm(objName,envir=.GlobalEnv)虽然objName肯定是一个字符因为它是结果,但我试过但是无法使它工作deparse(substitute(x).

r lazy-evaluation assign

21
推荐指数
1
解决办法
1297
查看次数

如何使用R的sprintf在END处创建带有填充空格的固定宽度字符串?

我有字符串的向量,并希望创建一个固定的字符串.较短的字符串应填充白色空格.例如:

c("fjdlksa01dada","rau","sjklf")
sprintf("%8s")
# returns
[1] "fjdlksa01dada" "     rau"      "   sjklf"
Run Code Online (Sandbox Code Playgroud)

但是如何在字符串的END处获得额外的空格?

请注意,我从gdata包中听说过write.fwf 非常好但在这种情况下没有多大帮助,因为我需要为过时的旧程序编写一个非常具体的非标准格式.

formatting printf r output

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

在lapply?deparse(substitute(x))?

我想使用一个使用标准deparse(substitute(x))技巧的函数lapply.不幸的是,我只是得到了循环的论证.这是我完全没用的可重复的例子:

# some test data
a <- 5
b <- 6 
li <- list(a1=a,b2=b)

# my test function
tf <- function(obj){
nm <- deparse(substitute(obj))
res <- list(myName=nm)
res
}

tf(a)
#returns
$myName
[1] "a"
Run Code Online (Sandbox Code Playgroud)

这很好.如果我使用lapply我得到[[1L]]x匿名函数的参数.

lapply(li,function(x) tf(x))
# returns
$a1
$a1$myName
[1] "x"


$b2
$b2$myName
[1] "x"
Run Code Online (Sandbox Code Playgroud)

有没有办法获得以下?

$a1
$a1$myName
[1] "a1"


$b2
$b2$myName
[1] "b1"
Run Code Online (Sandbox Code Playgroud)

如果有更一般的东西deparse(substitute(x)),lapply我也渴望知道.

编辑:问题,而不是使用接受多个参数的匿名函数,因此可以使用对象的名称和对象本身不起作用,因为该tf函数只接受一个参数.所以在这里不起作用......

r substitution lapply

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

如何从MySQL查询返回字段类型?

简单问题:如何返回MySQL表的字段类型.我知道describeshow column但我只是想返回那个单一的参数.例如:

SELECT fieldtype(mycol) FROM mytable
# should return INT or integer for example
Run Code Online (Sandbox Code Playgroud)

mysql fieldtype

18
推荐指数
3
解决办法
5万
查看次数

更新所有NULL字段MySQL

我想将一个表中的所有NULL字段更新为0.当然

UPDATE mytable SET firstcol=0 WHERE firstcol IS NULL 
Run Code Online (Sandbox Code Playgroud)

会做的.但我想知道是否有更智能的解决方案,而不仅仅是c&p每行的这一行.

mysql sql-update

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

在ts中使用日期字段?

我想知道在R中创建ts时如何使用已存在的日期字段.有时候你只有一个日期才能拥有一个ts对象,例如

x <- as.Date("2008-01-01") + c(30,60,90,120,150)
# add some data to it    
df = data.frame(datefield=x,test=1:length(x))
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法在创建ts对象时使用df的日期字段作为索引?因为:

   ts(df$test,start=c(2008,1,2),frequency=12)
Run Code Online (Sandbox Code Playgroud)

(显然)完全忽略了我已有的日期信息.使用像acf这样的ts方法是我喜欢把它变成ts对象的原因.我通常每月使用季度时间序列......

r time-series

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

使用NeweyWest时如何更新摘要?

我使用NeweyWest标准错误来纠正我的lm() / dynlm()输出.例如:

fit1<-dynlm(depvar~covariate1+covariate2)
coeftest(fit1,vcov=NeweyWest)
Run Code Online (Sandbox Code Playgroud)

系数以我想要的方式显示,但不幸的是,我放弃了所有回归输出信息,如R平方,F-Test等,通过摘要显示.所以我想知道如何在相同的摘要输出中显示强大的se和所有其他内容.

有没有办法在一次通话中获取所有内容或覆盖"旧"估算值?我敢打赌,我只是错过了一些错误的东西,但是在扫描输出时这确实很重要.

测试例,取自?dynlm.

require(dynlm)
require(sandwich)
data("UKDriverDeaths", package = "datasets")
uk <- log10(UKDriverDeaths)
dfm <- dynlm(uk ~ L(uk, 1) + L(uk, 12))

#shows R-squared, etc.
summary(dfm)

#no such information
coeftest(dfm, vcov = NeweyWest)
Run Code Online (Sandbox Code Playgroud)

顺便说一句:同样适用 vcovHC

r summary lm

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