Chúng tôi có khung dữ liệu từ tệp CSV. Khung dữ liệu DF
có các cột chứa giá trị được quan sát và cột (VaR2
) có chứa ngày mà một phép đo đã được thực hiện. Nếu ngày không được ghi lại, tệp CSV chứa giá trị NA
, vì thiếu dữ liệu.Tập hợp các hàng chứa các giá trị NA (thiếu) trong cột đã chọn của khung dữ liệu
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Chúng tôi muốn sử dụng lệnh tập hợp con để xác định một khung dữ liệu mới new_DF
như vậy mà nó chỉ chứa các hàng có giá trị NA'
từ cột (VaR2
). Trong ví dụ được đưa ra, chỉ có Hàng 2 mới được chứa trong DF
mới.
Lệnh
new_DF<-subset(DF,DF$Var2=="NA")
không hoạt động, khung dữ liệu kết quả không có bài liên tiếp.
Nếu trong tệp CSV gốc giá trị NA
được trao đổi với NULL
, cùng một lệnh tạo kết quả mong muốn: new_DF<-subset(DF,DF$Var2=="NULL")
.
Làm cách nào để phương thức này hoạt động, nếu đối với chuỗi ký tự, giá trị NA
được cung cấp trong tệp CSV gốc?
Cảm ơn câu trả lời nhanh của bạn (điều này thật nhanh)!Thật vậy, do việc phân phối dữ liệu csv, 'NA' là các giá trị ký tự và câu lệnh thứ hai của bạn có thể rất hữu ích. Bạn cũng có thể làm rõ tuyên bố đầu tiên của mình không? Việc sử dụng rowSums() không rõ ràng đối với tôi, vì tôi sẽ chỉ kiểm tra một cột cụ thể (có rất nhiều cột). Nếu cột cụ thể đó (trong ví dụ nó sẽ là cột Var2) có chuỗi ký tự 'NA' (tôi sẽ thay thế nó bằng câu lệnh thứ hai của bạn), thì tôi muốn chọn toàn bộ hàng là một phần của khung dữ liệu mới . – John
@John: đã cập nhật. Điểm này là sử dụng is.na, tôi giải thích sai bạn muốn kiểm tra tất cả các biến. –
nên là 'new_DF <- DF [is.na (DF $ Var),]', có nghĩa là có vẻ là một '(' ngoặc sau 'DF ['? – PatrickT