首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将所有0值替换为NA

将所有0值替换为NA
EN

Stack Overflow用户
提问于 2012-06-15 00:03:13
回答 7查看 428.2K关注 0票数 175

我有一个包含一些数值列的dataframe。某些行具有0值,在统计分析中应将其视为null。将R中的所有0值替换为NULL的最快方法是什么?

EN

回答 7

Stack Overflow用户

发布于 2015-02-20 22:08:32

让我假设您的data.frame是不同数据类型的混合,并不是所有列都需要修改。

要只修改第12到18列(总共21列),只需执行以下操作

代码语言:javascript
复制
df[, 12:18][df[, 12:18] == 0] <- NA
票数 45
EN

Stack Overflow用户

发布于 2018-07-05 00:52:54

dplyr::na_if()是一个选项:

代码语言:javascript
复制
library(dplyr)  

df <- data_frame(col1 = c(1, 2, 3, 0),
                 col2 = c(0, 2, 3, 4),
                 col3 = c(1, 0, 3, 0),
                 col4 = c('a', 'b', 'c', 'd'))

na_if(df, 0)
# A tibble: 4 x 4
   col1  col2  col3 col4 
  <dbl> <dbl> <dbl> <chr>
1     1    NA     1 a    
2     2     2    NA b    
3     3     3     3 c    
4    NA     4    NA d
票数 35
EN

Stack Overflow用户

发布于 2013-01-06 19:56:47

另一种不使用[<-函数的方法:

一个样本数据帧dat (无耻地复制自@Chase的答案):

代码语言:javascript
复制
dat

  x y
1 0 2
2 1 2
3 1 1
4 2 1
5 0 0

可以通过is.na<-函数将零替换为NA

代码语言:javascript
复制
is.na(dat) <- !dat


dat

   x  y
1 NA  2
2  1  2
3  1  1
4  2  1
5 NA NA
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11036989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档