小编lil*_*ets的帖子

R:为什么"ifelse"将因子强制转换为整数?

我试图将变量的值更改为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)

r

8
推荐指数
1
解决办法
1858
查看次数

如何在R中进行组匹配?

假设我有下面的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)

为了尽量减少选择偏差,我现在想的值的基础上,建立伪治疗组和对照组 …

grouping r match dataframe

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

如何根据列中的值选择列?

我想从某些列中获取值.每行的列不同,并取决于另一列的值.下面的例子应该说明一切.

这就是我所拥有的:

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)

先感谢您!

r

0
推荐指数
1
解决办法
91
查看次数

标签 统计

r ×3

dataframe ×1

grouping ×1

match ×1