dụ tái sản xuất này là một phiên bản rất đơn giản của mã của tôi:NaN được lấy ra khi sử dụng na.rm = TRUE
x <- c(NaN, 2, 3)
#This is fine, as expected
max(x)
> NaN
#Why does na.rm remove NaN?
max(x, na.rm=TRUE)
> 3
Đối với tôi, NA
(thiếu giá trị) và NaN
(không phải là số) là hai hoàn toàn các thực thể khác nhau, tại sao na.rm
xóa NaN
? Làm cách nào để bỏ qua NA
và không phải NaN
?
ps: Tôi đang sử dụng phiên bản R bit 64 bit 3.0.0 trên Windows7.
Chỉnh sửa: Sau khi tìm hiểu thêm, tôi thấy rằng is.na
cũng trả về true cho NaN
quá! Đây là nguyên nhân gây nhầm lẫn cho tôi.
is.na(NaN)
> TRUE
Vâng, tôi chỉ nhận thấy hành vi này. Ý tưởng của tôi về giá trị thiếu cần phải thay đổi. – Nishanth
@ e4e5f4 Tôi có lẽ sẽ không chọn hành vi này, tôi có đang thiết kế ngôn ngữ không. Nhưng đó là những gì nó được. –
Thật thú vị khi lưu ý rằng trợ giúp cho 'sum' nói rằng' na.rm = TRUE' sẽ loại bỏ cả hai 'NaN' và' NA' (trong khi '? Extremes') thì không. – mnel