【问题标题】:Translate dplyr slice_sample function into base R将 dplyr slice_sample 函数转换为基础 R
【发布时间】:2020-12-17 03:04:20
【问题描述】:

只是一个简单的问题:如何将 dplyr 函数 slice_sample 转换为基础 R?这是一个玩具数据集:

y <- rnorm(20)
x <- rnorm(20)
z <- rep(1:4, 5)
w <- rep(1:5, each=4)
dd <- data.frame(id=z,cluster=w,x=x,y=y)

然后我用slice_sample随机抽取18个案例:

dd %>% slice_sample(n = 18) %>%
  arrange(cluster)

如何在不使用任何包的情况下将上面的 dplyr 代码翻译成 base R?非常感谢!

【问题讨论】:

    标签: r dplyr sampling


    【解决方案1】:

    这样的?

    a <- dd[sample(nrow(dd), 18), ]  
    b <- a[order(a$cluster), ]
    
    
    > head(b)
      id cluster            x           y
    1  1       1  1.173261588 -0.32704781
    2  2       1 -0.008782128  0.40472078
    4  4       1  0.635944243 -0.16056411
    3  3       1  0.774128998 -0.16587688
    5  1       2  0.018583883  0.01382323
    6  2       2  2.571984650  0.99070283
    

    【讨论】:

    • 太棒了。谢谢!
    猜你喜欢
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2021-07-22
    • 1970-01-01
    • 2021-08-08
    • 2017-04-02
    相关资源
    最近更新 更多