r - 获取未采样的 id
问题描述
我想获取未采样的 id
id <- rep(1:10,each=2)
trt <- rep(c("A","B"),2)
score <- rnorm(20,0,1)
df <- data.frame(id,trt,score)
df$id <- as.factor(df$id)
df
id trt score
1 1 A 0.4920104
2 1 B 0.5030771
3 2 A 1.4030437
4 2 B 0.4132130
5 3 A -2.4449382
6 3 B -1.0981531
7 4 A -0.6013329
8 4 B -0.8411616
9 5 A -0.2696329
10 5 B -0.9869931
11 6 A 1.0681588
12 6 B 1.7500570
13 7 A 0.6008876
14 7 B -0.2181209
15 8 A -1.2943954
16 8 B -2.4495156
17 9 A 0.7680115
18 9 B 0.5497457
19 10 A -1.9713569
20 10 B -0.7696987
df <- df %>% filter(id %in% sample(levels(id),5))
df
id trt score
1 3 A 1.8816245
2 3 B 0.8614810
3 5 A 0.5508704
4 5 B -1.4144959
5 7 A 0.5174229
6 7 B 0.5244466
7 9 A 0.4318934
8 9 B -1.6376436
9 10 A 0.1746228
10 10 B 1.6319294
在这里,我想获取其他 ID。我该如何为此编码?假设有很多 id 并且无法手动选择它们
id trt score
1 1 A 0.07040075
2 1 B -0.70388700
3 2 A 0.78421333
4 2 B -0.90052385
7 4 A -0.48052247
8 4 B -0.66198818
11 6 A 1.12168455
12 6 B 0.90454813
15 8 A 1.54550328
16 8 B 0.64822307
..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... …………
解决方案
如果我们将filter
ed 对象分配给一个新对象('df1')而不是分配原始对象名称,则一个选项是anti_join
library(dplyr)
anti_join(df, df1, by = 'id')
或者另一种选择是filter
df %>%
filter(! id %in% df1$id)
数据
df1 <- df %>%
filter(id %in% sample(levels(id),5))
推荐阅读
- python - 用f2py编译后获取模块没有属性错误
- react-native - React Native - 标题右侧图标不会显示
- python - 为什么我的地图屏幕不起作用,有人可以帮我吗
- qt - 如何防止 QML 按钮在短时间内多次点击?
- ios - 来自 App Store 的崩溃 + 拒绝:场景创建看门狗(React Native)
- r - 检查 Vector 中的所有元素是否在 R 数据框中的组中可用
- kubernetes - GKE 中基于 RabbitMQ 队列大小的自动缩放
- css - 如何将 TextMeshPro-StyleTags 转换为 Unity 中的实际 RichText?
- android - ViewModel、LiveData 出现问题
- discord.js - 如何在命令后控制台记录消息的第二部分