Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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 根据列的名称和其他列值为列指定NA_R_Dplyr - Fatal编程技术网

R 根据列的名称和其他列值为列指定NA

R 根据列的名称和其他列值为列指定NA,r,dplyr,R,Dplyr,我想根据列的名称和另一个列值将NAs分配给列。 如以下示例所示: 给定数据帧iris,我想将NA分配给名称以“Sepal”和“Species”=“setosa”开头的所有列 使用dplyr mutate_at/mutate_的解决方案如果更可取,也欢迎任何其他解决方案 我试过了 iris %>% mutate_if(str_detect(names(.), pattern = "Sepal") & (.$Species == "setosa") , function(x){x

我想根据列的名称和另一个列值将NAs分配给列。 如以下示例所示:

给定数据帧iris,我想将NA分配给名称以“Sepal”和“Species”=“setosa”开头的所有列

使用dplyr mutate_at/mutate_的解决方案如果更可取,也欢迎任何其他解决方案

我试过了

iris %>%
   mutate_if(str_detect(names(.), pattern = "Sepal") & (.$Species == "setosa") , function(x){x <- NA})

Error in tbl_if_vars(.tbl, .p, .env, ..., .include_group_vars = .include_group_vars) : 
  length(.p) == length(tibble_vars) is not TRUE
iris%>%

如果(str_detect(names(.),pattern=“Sepal”)&(.$Species==“setosa”),函数(x){x在
dplyr
中,选择包含“Sepal”的变量,并将NA分配给物种为“setosa”的行:


dplyr
中,选择包含“萼片”的变体,并将NA分配给物种为“刚毛”的行:

甚至更短:

iris %>%
  mutate_at(vars(contains("Sepal")), 
            funs(na_if(Species, "setosa")))
甚至更短:

iris %>%
  mutate_at(vars(contains("Sepal")), 
            funs(na_if(Species, "setosa")))
myIris
myIris