我试图将变量的值更改为NA值,如果它们不在向量中:
sample <- factor(c('01', '014', '1', '14', '24'))
df <- data.frame(var1 = 1:6, var2 = factor(c('01', '24', 'none', '1', 'unknown', '24')))
df$var2 <- ifelse(df$var2 %in% sample, df$var2, NA)
Run Code Online (Sandbox Code Playgroud)
由于某种原因,R不保留因子变量的原始值,而是将它们转换为数字序列:
> sample <- factor(c('01', '014', '1', '14', '24'))
> df <- data.frame(var1 = 1:6,
var2 = factor(c('01', '24', 'none', '1', 'unknown', '24')))
> class(df$var2)
[1] "factor"
> df
var1 var2
1 1 01
2 2 24
3 3 none
4 4 1
5 5 unknown
6 6 24
> df$var2 <- …Run Code Online (Sandbox Code Playgroud) 假设我有下面的data.frame treat == 1表示id接收到的处理并且prob是计算出的概率treat == 1.
set.seed(1)
df <- data.frame(id = 1:10, treat = sample(0:1, 10, replace = T))
df$prob <- ifelse(df$treat, rnorm(10, .8, .1), rnorm(10, .4, .4))
df
id treat prob
1 1 0 0.3820266
2 2 0 0.3935239
3 3 1 0.8738325
4 4 1 0.8575781
5 5 0 0.6375605
6 6 1 0.9511781
7 7 1 0.8389843
8 8 1 0.7378759
9 9 1 0.5785300
10 10 0 0.6479303
Run Code Online (Sandbox Code Playgroud)
为了尽量减少选择偏差,我现在想的值的基础上,建立伪治疗组和对照组 …
我想从某些列中获取值.每行的列不同,并取决于另一列的值.下面的例子应该说明一切.
这就是我所拥有的:
id year data.2014 data.2015
1 2014 21 22
2 2015 23 24
Run Code Online (Sandbox Code Playgroud)
这是我想要的:
id year data.2014 data.2015 data
1 2014 21 22 21
2 2015 23 24 24
Run Code Online (Sandbox Code Playgroud)
先感谢您!