Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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_Mutate - Fatal编程技术网

R 如何将所有矢量元素转换为NA(无条件)

R 如何将所有矢量元素转换为NA(无条件),r,dplyr,mutate,R,Dplyr,Mutate,我有以下数据框 school<-c("NYU", "BYU", "USC") state<-c("NY","UT","CA") measure<-c("MSAT","MSAT","GPA") score<-c(500, 490, 2.9) score2<-(c(200, 280, 4.3)

我有以下数据框

school<-c("NYU", "BYU", "USC")
state<-c("NY","UT","CA")
measure<-c("MSAT","MSAT","GPA")
score<-c(500, 490, 2.9)
score2<-(c(200, 280, 4.3))
df<-data.frame(school,state, measure,score,score2,  stringsAsFactors=FALSE)

> df
  school state measure score score2
1    NYU    NY    MSAT 500.0  200.0
2    BYU    UT    MSAT 490.0  280.0
3    USC    CA     GPA   2.9    4.3
我试过:

df <- mutate_at(vars(-school,-measure),na_if(.,!is.na(.)))
我将如何实现这一目标。我想要执行此操作的列比要保留的列多得多。

请尝试以下操作:

df[,c(2,4,5)] <- NA
df[,c(2,4,5)]这样就可以了

df[,c("state","score","score2")]<-NA

df[,c(“state”,“score”,“score2”)]由于您特别要求
mutate
,以下是一些需要考虑的事项:


  • 在您的
    df行中,可以省略第一个逗号。另外,建议在
    的两侧添加空间,这很有效,谢谢。我想我唯一的评论是,在我提到的帖子中,我想转换为NA的列比我想保留的列多得多,所以我不想键入所有的列名(共有10个)我之所以使用dplyr,是因为我不想只为了得到我想要更改的所有列的向量而写1或2行,然后使用%in%。谢谢你,最后一行非常简单!因为我不喜欢输入太多的列名,所以我也经常使用这种解决方案。无论如何,如果输入的列发生变化,您会惊讶于哪些列被设置为NA。为了保存我的输入,我使用dput(names(df)),它为我提供了一个很好的所有列名称的字符向量,我只需要保留我想要的(手动删除其他列)。
    
    df[,c(2,4,5)] <- NA
    
    df[,c("state","score","score2")]<-NA
    
    just.na <- function(x) rep(NA, length(x))
    df %>% mutate_at(vars(-school, -measure), just.na)
    
    df %>% mutate_at(vars(-school, -measure), ~rep(NA, length(.)))
    
    df %>% mutate_at(vars(-school, -measure), ~NA)