Tôi nghĩ về điều này như một quá trình hai bước:
tập hợp con các khung dữ liệu gốc theo bộ lọc cung cấp (Believe == FALSE); sau đó
lấy số liệu hàng subset này
Đối với bước đầu tiên, tập con chức năng là một cách tốt để làm điều này (chỉ cần một thay thế cho chỉ số bình thường hoặc khung ký hiệu).
Đối với bước thứ hai, tôi sẽ sử dụng mờ hoặc nrow
Một lợi thế của việc sử dụng tập con: bạn không cần phải phân tích các kết quả nó sẽ trả về để có được kết quả bạn cần - chỉ cần gọi trực tiếp nrow.
như vậy trong trường hợp của bạn:
v = nrow(subset(Santa, Believe==FALSE)) # 'subset' returns a data.frame
hoặc bọc trong một chức năng ẩn danh:
>> fnx = function(fac, lev){nrow(subset(Santa, fac==lev))}
>> fnx(Believe, TRUE)
3
Ngoài nrow, mờ cũng sẽ thực hiện công việc. Hàm này trả về kích thước của một khung dữ liệu (hàng, cột) vì vậy bạn chỉ cần cung cấp các chỉ số thích hợp để truy cập vào số lượng hàng:
v = dim(subset(Santa, Believe==FALSE))[1]
Một câu trả lời cho OP gửi trước một điều này cho thấy sử dụng bảng dự phòng. Tôi không thích cách tiếp cận đó cho vấn đề chung như được đọc trong OP. Đây là lý do. Cấp, vấn đề chung của có bao nhiêu hàng trong khung dữ liệu này có giá trị x trong cột C? có thể được trả lời bằng bảng ngẫu nhiên cũng như sử dụng lược đồ "lọc" (như trong câu trả lời của tôi ở đây).Nếu bạn muốn đếm hàng cho tất cả các giá trị cho biến yếu tố (cột) thì bảng dự phòng (qua số bảng và chuyển qua cột quan tâm) là giải pháp hợp lý nhất; tuy nhiên, OP yêu cầu số lượng giá trị cụ thể là trong biến yếu tố, không được tính trên tất cả các giá trị. Ngoài hit hiệu suất (có thể lớn, có thể là tầm thường, chỉ phụ thuộc vào kích thước của khung dữ liệu và ngữ cảnh xử lý đường ống trong đó chức năng này cư trú). Và tất nhiên sau khi kết quả từ cuộc gọi đến bàn được trả lại, bạn vẫn phải phân tích cú pháp từ kết quả đó chỉ là số mà bạn muốn.
Vì vậy, đó là lý do tại sao, với tôi, đây là một bộ lọc chứ không phải là một vấn đề liên quan đến thẻ chéo.
Tôi nghĩ đây có lẽ là cách nhanh nhất. – Juan
Đây là giải pháp nhanh nhất cho trường hợp cụ thể này, không nghi ngờ gì về nó. – Arani