我正在尝试计算具有多个小数位的变量的范围,并且某些值NA
。一个例子是:
df1<-data.frame(x=c(0.34567,1.34563,1.26745,NA,0.65789,0.903455,1.49567,NA, 0.28749),
ID=c("A","B","A","B","A","B","A","B","A"))
df1
x ID
1 0.35 A
2 1.35 B
3 1.27 A
4 NA B
5 0.66 A
6 0.90 B
7 1.50 A
8 NA B
9 0.29 A
我已经尝试了下面的代码,但我得到一个没有小数位的范围,因此没有用:
range(!is.na(df1$x))
[1] 0 1
我应该怎么做才能得到几个小数位?
当你做is.na
时,你会得到TRUE
/FALSE
值
!is.na(df1$x)
#[1] TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE
当你对他们range
时,TRUE
被胁迫为 1,FALSE
为 0。因此,您的range
显示为 0
/1
.
range(!is.na(df1$x))
#[1] 0 1
如果要忽略NA
值,range
中na.rm
参数默认为FALSE
range(df1$x, na.rm = TRUE)
#[1] 0.28749 1.49567