小编S.R*_*.R.的帖子

使用glm在R中指定公式而不明确声明每个协变量

我想强制特定的变量进入glm回归而不完全指定每个变量.我的真实数据集有大约200个变量.到目前为止,我还没有在我的在线搜索中找到这样的样本.

例如(只有3个变量):

n=200
set.seed(39) 
samp = data.frame(W1 = runif(n, min = 0, max = 1), W2=runif(n, min = 0, max = 5)) 
samp = transform(samp, # add A
A = rbinom(n, 1, 1/(1+exp(-(W1^2-4*W1+1))))) 
samp = transform(samp, # add Y
Y = rbinom(n, 1,1/(1+exp(-(A-sin(W1^2)+sin(W2^2)*A+10*log(W1)*A+15*log(W2)-1+rnorm(1,mean=0,sd=.25))))))
Run Code Online (Sandbox Code Playgroud)

如果我想包含所有主要术语,这有一个简单的快捷方式:

glm(Y~., family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

但是说我想要包括所有主要术语(W1,W2和A)加上W2 ^ 2:

glm(Y~A+W1+W2+I(W2^2), family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

这有什么捷径吗?

[在发布之前编辑自己:]这个有效! glm(formula = Y ~ . + I(W2^2), family = binomial, data = samp)

好的,那么这个呢!

我想省略一个主要的术语变量,只包括两个主要术语(A,W2)和W2 ^ 2和W2 ^ 2:A:

glm(Y~A+W2+A*I(W2^2), family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

显然只有几个变量不需要快捷方式,但我使用高维数据.当前数据集"仅"有200个变量,但其他一些变量有成千上万个.

program-entry-point regression r glm

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

在R中非常大的数据集中将2列组合成1列多次

在R中非常大的数据集中将2列组合成1列多次

我正在研究的笨拙的解决方案不会非常快,如果我可以让他们工作,真正的数据集是~1500 X 45000所以他们需要快速.虽然我有一些2)和3)的代码,但我在这一点上绝对不知所措.

这是数据结构的玩具示例:

pop = data.frame(status = rbinom(n, 1, .42), sex = rbinom(n, 1, .5),
age = round(rnorm(n, mean=40, 10)), disType = rbinom(n, 1, .2),
rs123=c(1,3,1,3,3,1,1,1,3,1), rs123.1=rep(1, n), rs157=c(2,4,2,2,2,4,4,4,2,2),
rs157.1=c(4,4,4,2,4,4,4,4,2,2),  rs132=c(4,4,4,4,4,4,4,4,2,2),
rs132.1=c(4,4,4,4,4,4,4,4,4,4))
Run Code Online (Sandbox Code Playgroud)

因此,有几列基本人口统计信息,然后其余列是双等位SNP信息.例如:rs123是rs123的等位基因1,rs123.1是rs123的第二个等位基因.

1)我需要将当前在2列中的所有双等位基因SNP数据合并为1列,例如:rs123和rs123.1合并为一列(但在数据集中):

11
31
11
31
31
11
11
11
31
11
Run Code Online (Sandbox Code Playgroud)

2)我需要识别最不频繁的SNP值(在上面的例子中它是31).

3)我需要用1替换最不频繁的SNP值,用0替换其他的SNP值.

merge r

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

标签 统计

r ×2

glm ×1

merge ×1

program-entry-point ×1

regression ×1