用于删除组中的值的R代码
我使用的数据与以下数据类似:用于删除组中的值的R代码,r,data-management,R,Data Management,我使用的数据与以下数据类似: ID <- seq(1,10,1) Letter <- c("A", "B", "C","C", "C", "D", "D", "E","F", "F") df<- data.frame(ID, Letter) 具体来看Letter列,我想对数据进行
ID <- seq(1,10,1)
Letter <- c("A", "B", "C","C", "C", "D", "D", "E","F", "F")
df<- data.frame(ID, Letter)
具体来看Letter
列,我想对数据进行子集划分,以便Letter
列只包含ID
值4。但我想保留所有其他的价值观。因此,数据如下所示:
ID Letter
1 1 A
2 2 B
4 4 C
6 6 D
7 7 D
8 8 E
9 9 F
10 10 F
如果您能提供任何帮助,我们将不胜感激 我们可以按操作分组,即按“字母”分组,
如果有任何有4个“ID”,只需根据该比较获取逻辑向量,或者否则返回所有内容(TRUE
)
及其在baser
subset(df, Letter %in% setdiff(Letter, unique(Letter[ID == 4]))|ID == 4)
我们可以按操作分组,即按“字母”分组,如果有任何有4个ID,只需根据该比较获取逻辑向量,或者否则返回所有内容(TRUE
)
及其在baser
subset(df, Letter %in% setdiff(Letter, unique(Letter[ID == 4]))|ID == 4)
这是一个基本的R选项
subset(df,ave(ID==4,Letter,FUN = function(x) Negate(any)(x)|x))
给予
ID Letter
1 1 A
2 2 B
4 4 C
6 6 D
7 7 D
8 8 E
9 9 F
10 10 F
这是一个基本的R选项
subset(df,ave(ID==4,Letter,FUN = function(x) Negate(any)(x)|x))
给予
ID Letter
1 1 A
2 2 B
4 4 C
6 6 D
7 7 D
8 8 E
9 9 F
10 10 F
我们可以子集ID=4
或字母
与ID=4
中的值不同的所有其他值
subset(df, ID == 4 | !Letter %in% Letter[ID == 4])
# ID Letter
#1 1 A
#2 2 B
#4 4 C
#6 6 D
#7 7 D
#8 8 E
#9 9 F
#10 10 F
这也可以在dplyr
中写成:
library(dplyr)
df %>% filter(ID == 4 | !Letter %in% Letter[ID == 4])
我们可以子集ID=4
或字母
与ID=4
中的值不同的所有其他值
subset(df, ID == 4 | !Letter %in% Letter[ID == 4])
# ID Letter
#1 1 A
#2 2 B
#4 4 C
#6 6 D
#7 7 D
#8 8 E
#9 9 F
#10 10 F
这也可以在dplyr
中写成:
library(dplyr)
df %>% filter(ID == 4 | !Letter %in% Letter[ID == 4])
谢谢大家的帮助!谢谢大家的帮助!