R语言中%in%的作用

R中的%in%的作用

线性回归模型是统计学中的重要模型,它的形式一般为:
y = X β + z , y = X \beta + z, y=Xβ+z,
这里我们假设噪声序列 z z z服从 N ( 0 , σ 2 I ) N(0, \sigma^2I) N(0,σ2I).

在变量选择的相关数值模拟实验中,我们通常假设变量的系数 β \beta β是稀疏的,也就是 p p p维向量 β \beta β中有很多个元素都是0.
这是我们会在setting中假设维度 p p p是多少,稀疏程度 k k k是多少. 比如假设 p = 30 , k = 2 , p=30, k=2, p=30,k=2, 使用sample()函数随机选择 p p p维向量组中哪 k k k个元素不为0:

p = 30
k=2
set.seed(1234)
nonzero = sample(p,k)

nonzero中储存了k个整数型数据,代表 p p p维向量中的 k k k个元素. 然后我们就可以生成 β \beta β. 假设 β \beta β的大小都为2,那么有

amplitude = 2
beta = amplitude * (1:p %in% nonzero)

> beta
 [1] 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0

这样就生成了稀疏的系数向量.
其中,1:p %in% nonzero返回的是逻辑型数据,表示nonzero中的数值是否在向量(1,2,…,p)中出现. 若向量(1,2,…,p)中有跟nonzero中的数重合的,就返回“True”,若不重合则返回“False”. 举个例子:

> b = 1:5 %in% 3
> b
[1] FALSE FALSE  TRUE FALSE FALSE
> class(b)
[1] "logical"

你可能感兴趣的:(R)