我可以使用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) 超级快速的问题......
如何获取某个特定函数(用户定义的)参数并将其转换为字符串?
如果是一个简单的例子,
foo <- function(x) { ... }
Run Code Online (Sandbox Code Playgroud)
我想简单地返回x的对象名称.所以,
foo(testing123)
Run Code Online (Sandbox Code Playgroud)
返回"testing123"(并且testing123可能只是一些随机数字向量)
如果之前已经问过这个问题,我会道歉 - 搜索,但找不到它!谢谢!!
我polygon在R中使用了命令,它在图中创建了一个区域.但是,未显示此区域中的值,而主要目的是监视这些值.有谁知道如何处理这个?
基于一些简单的测试,interactive()在内部rmarkdown::render()或中运行代码时都是如此knitr::knit2html().也就是说,一个简单的.rmd文件包含
```{r}
print(interactive())
```
Run Code Online (Sandbox Code Playgroud)
提供报告的HTML文件TRUE.
有没有人知道我可以在一个代码块中运行的测试,它将确定它是否是"非交互式"运行,我的意思是"在knit2html()或render()"中?
请考虑以下代码.当您没有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) 我正在进行一些日期/时间操作,并在转换日期 - >时间 - >日期时遇到可解释但令人不愉快的往返问题.我已经通过在适当的点进行四舍五入来暂时克服这个问题,但我想知道是否有更好的日期处理方法会更清晰.我正在使用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) 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) 我试图使用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 …
我想将plyr.tar.gz文件中的软件包安装到linux机器上的R软件包库中.我该怎么做呢?我只是将它放在库目录中吗?如果我没有写权限怎么办?
在Visual Studio中,我们可以使用"附加到进程"来调试DLL.
有没有办法在Eclipse/StatET 中调试 R包的C/C++代码(例如调试链接到Scilab的外部代码的示例)?