my.data.frame <- subset(data , V1 > 2 | V2 < 4)
Một giải pháp thay thế mà bắt chước hành vi của chức năng này và sẽ thích hợp hơn để đưa vào trong một cơ quan chức năng:
new.data <- data[ which(data$V1 > 2 | data$V2 < 4) , ]
Một số người chỉ trích việc sử dụng which
như không cần thiết, nhưng nó ngăn chặn các giá trị NA
từ việc ném lại các kết quả không mong muốn. Tương đương (.ie không trở về NA-hàng cho bất kỳ NA trong V1 hay V2) với hai tùy chọn trình bày ở trên mà không có sự which
sẽ là:
new.data <- data[ !is.na(data$V1 | data$V2) & (data$V1 > 2 | data$V2 < 4) , ]
Lưu ý: Tôi muốn cảm ơn những đóng góp vô danh mà cố gắng để sửa chữa lỗi trong mã ngay phía trên, một bản sửa lỗi đã bị người kiểm duyệt từ chối. Có một lỗi bổ sung mà tôi nhận thấy khi tôi sửa lỗi đầu tiên. Mệnh đề có điều kiện để kiểm tra cho các giá trị NA cần phải được đầu tiên nếu nó được xử lý như tôi dự định, kể từ khi ...
> NA & 1
[1] NA
> 0 & NA
[1] FALSE
Trình tự lập luận có thể có vấn đề khi sử dụng '&".
Nguồn
2011-02-08 16:26:07
Thay vì thử nghiệm các câu hỏi 'cơ bản' như thế này, hãy xem chúng như một cơ hội để làm cho internet tốt hơn. SO của google-nước là mạnh mẽ, và mỗi khi một câu hỏi SO thay thế một câu hỏi listerv khủng khiếp từ năm 2004 một thiên thần được cánh của nó. – Andrew
Tôi nghĩ rằng các câu hỏi listerv disparaging là một sự bất mãn cho những người tìm cách tìm hiểu cách tìm kiếm. Mọi người nên xem xét sử dụng một công cụ tìm kiếm tốt cho các câu hỏi chuyên ngành. Lựa chọn của tôi là http://markmail.org/search/?q=list%3Aorg.r-project nhưng những người khác có thể chọn Rseek.org. –
Tôi nghĩ rằng những lời bình luận phân biệt đối xử với các câu hỏi là một sự bất đồng đối với những người muốn đọc các ý kiến không phân biệt – hedgedandlevered