公式就是这样.我不太明白"/"这个概念的用法.似乎"/"通常用于虚拟变量.但我不确定它的用法.
lm(y~x/z,data = data.frame(x = rnorm(6), y = rnorm(6), z = rep(0:1,each=3)))
Run Code Online (Sandbox Code Playgroud) 我想获取列表中的每个最后一个元素。我发现通过使用 sapply 函数,可以获得第一个元素。
sapply(a,`[`,1)
Run Code Online (Sandbox Code Playgroud)
但是,我实际上并没有理解 是什么意思[,以及如何以类似的方式获取最后一个元素。此代码不起作用。
sapply(a,`]`,1)
Run Code Online (Sandbox Code Playgroud) 我想在R中运行分区回归,我需要为其指定一个因子来指示此数据属于哪个分区.例如,当它大于平均值±2标准偏差时,我指定指示符2,并在平均值+ 1sd和平均值+ 2sd之间,依此类推,依此类推.我知道可以用if和else来完成.但是当分区太多时,代码似乎太长了.有没有简单而简洁的方法来实现它?
mean=mean(x)
sd=sd(x)
if((x[i]-mean)/sd< -3) signal[i]=-3
if((x[i]-mean)/sd> -3) signal[i]=-2
if((x[i]-mean)/sd> -2) signal[i]=-1
if((x[i]-mean)/sd> -1) signal[i]=0
if((x[i]-mean)/sd>1) signal[i]=1
if((x[i]-mean)/sd>2) signal[i]=2
if((x[i]-mean)/sd>3) signal[i]=3
}
Run Code Online (Sandbox Code Playgroud)
感谢@jogo和@ r.user.05apr.现在我的问题略有不同.我想基于滚动窗口计算分区,例如20天,这意味着我需要根据过去20天(第t-20天到第t-1天)来缩放第t天的数据并分配相同的值以上根据其z分数.在这种情况下,还可以使用切割功能吗?我编写了一个带循环和句子的代码
signal <- vector()
n=20 #window
for(i in (n+1):length(x)){
mean=mean(x[(n-20):(n-1)])
sd=sd(x[(i-20):(i-1)])
if((x[i]-mean)/sd< -3) signal[i]=-3
if((x[i]-mean)/sd> -3) signal[i]=-2
if((x[i]-mean)/sd> -2) signal[i]=-1
if((x[i]-mean)/sd> -1) signal[i]=0
if((x[i]-mean)/sd>1) signal[i]=1
if((x[i]-mean)/sd>2) signal[i]=2
if((x[i]-mean)/sd>3) signal[i]=3
}
Run Code Online (Sandbox Code Playgroud) 有没有办法支持 C++ 中订单统计树的重复项?我在另一个问题中找到了构建顺序统计集的方法。但它不支持重复键。
例如,如果我有s = {1, 1, 2, 2, 3, 4}. 我想s.find_by_order(0) == s.find_by_order(1) == 1。看来,如果我们能用每个键的值作为计数,并将总计数存储在节点中的所有子树中,我们就可以实现这个目标。但我不知道如何做到这一点__gnu_pbds。是否有对树进行更简单的修改来支持这一点?