我有一个包含一些数值列的dataframe。某些行具有0值,在统计分析中应将其视为null。将R中的所有0值替换为NULL的最快方法是什么?
发布于 2015-02-20 22:08:32
让我假设您的data.frame是不同数据类型的混合,并不是所有列都需要修改。
要只修改第12到18列(总共21列),只需执行以下操作
df[, 12:18][df[, 12:18] == 0] <- NA
发布于 2018-07-05 00:52:54
dplyr::na_if()
是一个选项:
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
发布于 2013-01-06 19:56:47
另一种不使用[<-
函数的方法:
一个样本数据帧dat
(无耻地复制自@Chase的答案):
dat
x y
1 0 2
2 1 2
3 1 1
4 2 1
5 0 0
可以通过is.na<-
函数将零替换为NA
:
is.na(dat) <- !dat
dat
x y
1 NA 2
2 1 2
3 1 1
4 2 1
5 NA NA
https://stackoverflow.com/questions/11036989
复制相似问题