【问题标题】:R simulation of correlated data相关数据的 R 模拟
【发布时间】:2020-09-25 12:51:19
【问题描述】:
data = data.frame(GROUP = sample(1:4, size = 1000, r = TRUE),
SCORE = runif(1000),

帮助 = runif(1000, -.2, .8))

我有样本“数据”,其中包含变量 GROUP,表示个人所在的 GROUP,SCORE 是该个人的 SCORE,HELP 是另一种衡量标准。

现在,如果您知道如果 GROUP = 1 的 HELP 值大于 0.3,则其平均得分较高,但如果 GROUP = 2 的 HELP 值小于 0.4,则其平均得分较低,怎么能你模拟一个使用这些信息的数据集?

【问题讨论】:

  • @akrun 你有 data.table 的想法吗?

标签: r data.table


【解决方案1】:

这是一个简单的解决方案,使用dplyrSCORE 增加/减少一个sd 以适应相关条件。

library(dplyr)

sd(data$SCORE)
#> [1] 0.2868018

data <- 
   data %>% 
   mutate(helpgt3 = as.integer(HELP > .3),
          helplt4 = as.integer(HELP < .4))

original_means <- 
   data %>% 
   group_by(GROUP, helpgt3) %>% 
   summarise(mean.score = mean(SCORE))

data <- 
   data %>% 
   mutate(SCORE = case_when(
      helpgt3 == 1 & GROUP == 1 ~ SCORE + 0.2868018,
      helplt4 == 1 & GROUP == 2 ~ SCORE - 0.2868018,
      TRUE ~ SCORE
   ))

new_means <- 
   data %>% 
   group_by(GROUP, helpgt3) %>% 
   summarise(mean.score = mean(SCORE))
#> `summarise()` regrouping output by 'GROUP' (override with `.groups` argument)

original_means
#> # A tibble: 8 x 3
#> # Groups:   GROUP [4]
#>   GROUP helpgt3 mean.score
#>   <int>   <int>      <dbl>
#> 1     1       0      0.486
#> 2     1       1      0.474
#> 3     2       0      0.473
#> 4     2       1      0.525
#> 5     3       0      0.482
#> 6     3       1      0.486
#> 7     4       0      0.545
#> 8     4       1      0.521
new_means
#> # A tibble: 8 x 3
#> # Groups:   GROUP [4]
#>   GROUP helpgt3 mean.score
#>   <int>   <int>      <dbl>
#> 1     1       0      0.486
#> 2     1       1      0.761
#> 3     2       0      0.186
#> 4     2       1      0.478
#> 5     3       0      0.482
#> 6     3       1      0.486
#> 7     4       0      0.545
#> 8     4       1      0.521

您的数据

set.seed(2020)
data = data.frame(GROUP = sample(1:4, size = 1000, r = TRUE),
                  SCORE = runif(1000),
                  HELP = runif(1000, -.2, .8))

【讨论】:

    猜你喜欢
    • 2018-04-27
    • 2013-10-04
    • 2013-04-11
    • 2020-04-23
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多