小编Ben*_*ker的帖子

如何使用lme4将没有随机效应的模型与具有随机效应的模型进行比较?

我可以使用nlme包中的gls()来构建没有随机效果的mod1.然后我可以将使用AIC的mod1与使用lme()构建的mod2进行比较,其中包含随机效果.

mod1 = gls(response ~ fixed1 + fixed2, method="REML", data)
mod2 = lme(response ~ fixed1 + fixed2, random = ~1 | random1, method="REML",data)
AIC(mod1,mod2)
Run Code Online (Sandbox Code Playgroud)

是否有类似于gls()的lme4包,它允许我构建没有随机效果的mod3,并将它与使用lmer()构建的mod4进行比较,其中包含随机效果?

mod3 = ???(response ~ fixed1 + fixed2, REML=T, data)
mod4 = lmer(response ~ fixed1 + fixed2 + (1|random1), REML=T, data)
AIC(mod3,mod4)
Run Code Online (Sandbox Code Playgroud)

r lme4 mixed-models nlme

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

Cast function argument as a character string?

超级快速的问题......

如何获取某个特定函数(用户定义的)参数并将其转换为字符串?

如果是一个简单的例子,

foo <- function(x) { ... }
Run Code Online (Sandbox Code Playgroud)

我想简单地返回x的对象名称.所以,

foo(testing123)
Run Code Online (Sandbox Code Playgroud)

返回"testing123"(并且testing123可能只是一些随机数字向量)

如果之前已经问过这个问题,我会道歉 - 搜索,但找不到它!谢谢!!

r

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

使用polygon命令的透明度

polygon在R中使用了命令,它在图中创建了一个区域.但是,未显示此区域中的值,而主要目的是监视这些值.有谁知道如何处理这个?

r polygon

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

如何判断代码是否在knitr/rmarkdown上下文中执行?

基于一些简单的测试,interactive()在内部rmarkdown::render()或中运行代码时都是如此knitr::knit2html().也就是说,一个简单的.rmd文件包含

```{r}
print(interactive())
```
Run Code Online (Sandbox Code Playgroud)

提供报告的HTML文件TRUE.

有没有人知道我可以在一个代码块中运行的测试,它将确定它是否是"非交互式"运行,我的意思是"在knit2html()或render()"中?

r knitr r-markdown

18
推荐指数
2
解决办法
801
查看次数

子集化data.frame中的NA会出现意外情况

请考虑以下代码.当您没有NA在您的条件中明确测试时,该代码将在以后失败,然后您的数据会发生变化.

>   # A toy example
>   a <- as.data.frame(cbind(col1=c(1,2,3,4),col2=c(2,NA,2,3),col3=c(1,2,3,4),col4=c(4,3,2,1)))
>   a
  col1 col2 col3 col4
1    1    2    1    4
2    2   NA    2    3
3    3    2    3    2
4    4    3    4    1
>   
>   # Bummer, there's an NA in my condition
>   a$col2==2
[1]  TRUE    NA  TRUE FALSE
> 
>   # Why is this a good thing to do?
>   # It NA'd the whole row, and kept it
>   a[a$col2==2,]
   col1 col2 …
Run Code Online (Sandbox Code Playgroud)

r

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

避免日期操作中的舍入陷阱的最佳实践

我正在进行一些日期/时间操作,并在转换日期 - >时间 - >日期时遇到可解释但令人不愉快的往返问题.我已经通过在适当的点进行四舍五入来暂时克服这个问题,但我想知道是否有更好的日期处理方法会更清晰.我正在使用base-R和lubridate函数的混合.

tl; dr有一个很好的,简单的方法从十进制日期(YYYY.fff)转换到Date类(和返回)而不经过POSIXt并导致四舍五入(和可能的时区)并发症?

从1918年的几天开始,作为单独的年/月/日列(不是我的问题的关键部分,但它是我的管道恰好开始的地方):

library(lubridate)
dd <- data.frame(year=1918,month=9,day=1:12)
Run Code Online (Sandbox Code Playgroud)

转换年/月/日 - >日期 - >时间:

dd <- transform(dd,
                time=decimal_date(make_date(year, month, day)))
Run Code Online (Sandbox Code Playgroud)

由于收尾,所得时间向量的连续差异并不完全是1:这是可以理解的,但会导致问题.

table(diff(dd$time)*365)
## 0.999999999985448  1.00000000006844 
##                 9                 2 
Run Code Online (Sandbox Code Playgroud)

现在假设我转换回日期:日期在午夜之前或之后(在任一方向偏离<1秒):

d2 <- lubridate::date_decimal(dd$time)
#  [1] "1918-09-01 00:00:00 UTC" "1918-09-02 00:00:00 UTC"
#  [3] "1918-09-03 00:00:00 UTC" "1918-09-03 23:59:59 UTC"
#  [5] "1918-09-04 23:59:59 UTC" "1918-09-05 23:59:59 UTC"
#  [7] "1918-09-07 00:00:00 UTC" "1918-09-08 00:00:00 UTC"
#  [9] "1918-09-09 00:00:00 UTC" "1918-09-09 …
Run Code Online (Sandbox Code Playgroud)

datetime r date lubridate

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

R:导入包含空格的列名称的CSV

CSV文件看起来像这样(为简洁起见而修改).有几列在标题中有空格,R似乎无法区分它们.

Alias;Type;SerialNo;DateTime;Main status; [...]
E1;E-70;781733;01/04/2010 11:28;8; [...]

这是我试图执行的代码:

s_data <- read.csv2( file=f_name )
attach(s_data)

s_df = data.frame( 
                scada_id=ID,
                plant=PlantNo, 
                date=DateTime,
                main_code=Main status,
                seco_code=Additional Status,
                main_text=MainStatustext,
                seco_test=AddStatustext,
                duration=Duration)

detach(s_data)
Run Code Online (Sandbox Code Playgroud)

我也尝试过替换

main_code=Main\ status
Run Code Online (Sandbox Code Playgroud)

main_code="Main status"
Run Code Online (Sandbox Code Playgroud)

csv r

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

使用引导包中的参数引导程序调整引导置信区间(BCa)

我试图使用boot.ciR的boot包来计算参数自举的偏差和偏斜校正自举置信区间.从我阅读的手册页和实验中,我得出结论,我必须自己计算折刀估计值并将其输入boot.ci,但这并未在任何地方明确说明.我一直无法找到其他文档,虽然公平地说我还没有查看代码所基于的原始Davison和Hinkley书籍......

如果我天真地跑b1 <- boot(...,sim="parametric"),然后boot.ci(b1),我得到错误influence values cannot be found from a parametric bootstrap.当且仅当我指定type="all"或时,才会发生此错误type="bca"; boot.ci(b1,type="bca")给出了同样的错误.那样做empinf(b1).我能得到的东西的工作的唯一办法是明确地计算刀切估计(使用empinf()data参数)和饲料到这些boot.ci.

构建数据:

set.seed(101)
d <- data.frame(x=1:20,y=runif(20))
m1 <- lm(y~x,data=d)
Run Code Online (Sandbox Code Playgroud)

引导:

b1 <- boot(d$y,
           statistic=function(yb,...) {
             coef(update(m1,data=transform(d,y=yb)))
           },
           R=1000,
           ran.gen=function(d,m) {
             unlist(simulate(m))
           },
           mle=m1,
           sim="parametric")
Run Code Online (Sandbox Code Playgroud)

好到目前为止.

boot.ci(b1)
boot.ci(b1,type="bca")
empinf(b1)
Run Code Online (Sandbox Code Playgroud)

都给出了上述错误.

这有效:

L <- empinf(data=d$y,type="jack",
            stype="i",
            statistic=function(y,f) {
              coef(update(m1,data=d[f,]))
            })

boot.ci(b1,type="bca",L=L)
Run Code Online (Sandbox Code Playgroud)

有谁知道这是我应该这样做的方式吗?

更新:boot …

r statistics-bootstrap

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

从Linux上的本地.tar.gz文件安装包

我想将plyr.tar.gz文件中的软件包安装到linux机器上的R软件包库中.我该怎么做呢?我只是将它放在库目录中吗?如果我没有写权限怎么办?

r

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

如何在Eclipse中调试R包(使用C和C++代码)?

在Visual Studio中,我们可以使用"附加到进程"来调试DLL.

有没有办法在Eclipse/StatET 中调试 R包的C/C++代码(例如调试链接到Scilab的外部代码的示例)?

c++ eclipse debugging r statet

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