将 dplyr slice_sample 函数翻译成 base R
Translate dplyr slice_sample function into base R
一个简单的问题:如何将 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
随机select18例:
dd %>% slice_sample(n = 18) %>%
arrange(cluster)
如何在不使用任何包的情况下将上面的 dplyr 代码翻译成 base R?非常感谢!
是这样的吗?
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
一个简单的问题:如何将 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
随机select18例:
dd %>% slice_sample(n = 18) %>%
arrange(cluster)
如何在不使用任何包的情况下将上面的 dplyr 代码翻译成 base R?非常感谢!
是这样的吗?
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