Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于删除组中的值的R代码_R_Data Management - Fatal编程技术网

用于删除组中的值的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])

谢谢大家的帮助!谢谢大家的帮助!