Tôi có một data.frame như thế này:Trong R, có cách nào để xử lý NA trong một cột nguyên của một data.frame sao cho các giá trị NA không được bao gồm khi subsetting?
(t=structure(list(count = c(NA, 2, NA, NA, NA, 8, NA, NA, NA)), .Names = "count", row.names = c(NA,-9L), class = "data.frame"))
count
1 NA
2 2
3 NA
4 NA
5 NA
6 8
7 NA
8 NA
9 NA
Thật tuyệt vời khi R có giá trị NA nhưng đôi khi nó cắn tôi. Tôi thường quên điều đó và cố gắng làm dịu như thế này
> t[t$count>=1,]
[1] NA 2 NA NA NA 8 NA NA NA
Và đầu ra bao gồm tất cả các hàng NA. (mà tôi không thích)
Sau một giờ tìm kiếm lỗi, tôi thay đổi mã này và đó là những gì tôi muốn (hãy tưởng tượng khung dữ liệu lớn "NAS):
> t[t$count>=1&!is.na(t$count),]
[1] 2 8
1. có một tính năng của "" chức năng as.integer để tôi có thể làm điều gì đó như thế này:
t [as.integer.EXCLUDE.NA (t $ count)> = 1,]
Tôi cũng muốn sử dụng tính năng này trong các hàm as.xxxx khác. Về cơ bản buộc R ngừng suy nghĩ như một thống kê và xử lý NA khác nhau (ví dụ như NULL (Tôi không chắc NULL sẽ giải quyết vấn đề của tôi) (điều này không hoạt động: t $ count [3] < -NULL vì lý do nào)
2. hoặc làm thế nào tôi sẽ chạy
transform(t, replace all NAs from count columns with 0)
hoặc thậm chí tốt hơn
transform(t, replace all NA from all numeric columns with 0 in t)
3. bất kỳ ý kiến chung vào việc R quên NA được hoan nghênh?
Tôi thấy giá trị của NA, nhưng có các tập dữ liệu mà NA không được hoan nghênh. – userJT
Nhưng làm thế nào để bạn muốn xử lý chúng - Thả từng NA? Thả từng hàng nơi có bất kỳ NA nào? Xâm chúng? Đó là một quyết định quan trọng. –