小编Roy*_*Roy的帖子

在lm()中写回归公式时,"/"在R中意味着什么

公式就是这样.我不太明白"/"这个概念的用法.似乎"/"通常用于虚拟变量.但我不确定它的用法.

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)

r lm

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

如何获取R中列表中的最后一个元素

我想获取列表中的每个最后一个元素。我发现通过使用 sapply 函数,可以获得第一个元素。

sapply(a,`[`,1)
Run Code Online (Sandbox Code Playgroud)

但是,我实际上并没有理解 是什么意思[,以及如何以类似的方式获取最后一个元素。此代码不起作用。

sapply(a,`]`,1)
Run Code Online (Sandbox Code Playgroud)

r list sapply

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

如何在r中快速分配值

我想在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)

r

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

Order Statistic Tree in C++ with duplicates

有没有办法支持 C++ 中订单统计树的重复项?我在另一个问题中找到了构建顺序统计集的方法。但它不支持重复键。

例如,如果我有s = {1, 1, 2, 2, 3, 4}. 我想s.find_by_order(0) == s.find_by_order(1) == 1。看来,如果我们能用每个键的值作为计数,并将总计数存储在节点中的所有子树中,我们就可以实现这个目标。但我不知道如何做到这一点__gnu_pbds。是否有对树进行更简单的修改来支持这一点?

c++ data-structures

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

标签 统计

r ×3

c++ ×1

data-structures ×1

list ×1

lm ×1

sapply ×1