Câu hỏi: Tôi đang thử nghiệm các chức năng trong một gói mà tôi đang phát triển và muốn biết liệu bạn có thể đề xuất một số hướng dẫn chung về cách thực hiện điều này hay không. Các chức năng bao gồm một phạm vi rộng lớn của mô hình thống kê, biến đổi, subsetting, và âm mưu. Có một 'tiêu chuẩn' hoặc một số thử nghiệm đủ?nguyên tắc kiểm tra chức năng thống kê trong R?
Một thí dụ: các bài kiểm tra đó nhắc tôi hỏi câu hỏi này,
Chức năng dtheta:
dtheta <- function(x) {
## find the quantile of the mean
q.mean <- mean(mean(x) >= x)
## find the quantiles of ucl and lcl (q.mean +/- 0.15)
q.ucl <- q.mean + 0.15
q.lcl <- q.mean - 0.15
qs <- c(q.lcl, q.mean, q.ucl)
## find the lcl, mean, and ucl of the vector
c(quantile(x,qs), var(x), sqrt(var(x))/mean(x))
}
Bước 1: làm cho dữ liệu thử nghiệm:
set.seed(100) # per Dirk's recommendation
test <- rnorm(100000,10,1)
Bước 2: so sánh sản lượng dự kiến từ hàm với đầu ra thực tế từ hàm:
expected <- quantile(test, c(0.35, 0.65, 0.5))
actual <- dtheta(test)[1:3]
signif(expected,2) %in% signif(actual,2)
Bước 3: có lẽ làm một thử nghiệm
test2 <- runif(100000, 0, 100)
expected <- c(35, 50, 65)
actual <- dtheta(test2)
expected %in% signif(actual,2)
Bước 4: nếu đúng, hãy xem xét chức năng 'chức năng'
+1 Joris để kiểm tra đầu vào. Tôi cũng sẽ thêm vào để kiểm tra * đầu ra *. Đầu ra của các hàm của bạn phải là * dự đoán được * và * được định nghĩa chính xác *. Thật không may vào thời điểm này, chức năng cơ bản của R đôi khi chỉ hút. Không bao giờ biết chính xác những gì hàm trả về trừ khi bạn đi đến tài liệu một lần nữa, và một lần nữa, và một lần nữa ... – VitoshKa