Đáng tiếc là có vẻ là không có gói R nhưng có thể tạo ra một đầu ra tốt đẹp như SPSS.Hầu hết các chức năng để tạo ra các bảng dường như định nghĩa các định dạng đặc biệt của riêng chúng, điều gì khiến bạn gặp rắc rối nếu bạn muốn xuất hoặc làm việc theo cách khác.
Nhưng tôi chắc chắn R có khả năng đó và vì vậy tôi bắt đầu viết các chức năng của riêng tôi. Tôi rất vui khi chia sẻ kết quả (công việc đang ở trạng thái tiến độ, nhưng hoàn thành công việc) với bạn:
Hàm sau trả về cho tất cả các biến yếu tố trong dữ liệu.khoảng tần số hoặc tỷ lệ phần trăm (calc = " perc ") cho mỗi cấp của biến yếu tố" biến ".
Điều quan trọng nhất có thể là đầu ra là một dữ liệu thân thiện với người dùng đơn giản &. Vì vậy, so với nhiều chức năng khác, không có vấn đề gì khi xuất kết quả một tác phẩm với nó theo bất kỳ cách nào bạn muốn.
tôi nhận ra rằng có nhiều tiềm năng để cải thiện hơn nữa, tức là thêm một khả năng lựa chọn hàng so với tính toán tỷ lệ phần trăm cột vv
contitable <- function(survey_data, variable, calc="freq"){
# Check which variables are not given as factor
# and exlude them from the given data.frame
survey_data_factor_test <- as.logical(sapply(Survey, FUN=is.factor))
survey_data <- subset(survey_data, select=which(survey_data_factor_test))
# Inform the user about deleted variables
# is that proper use of printing to console during a function call??
# for now it worksjust fine...
flush.console()
writeLines(paste("\n ", sum(!survey_data_factor_test, na.rm=TRUE),
"non-factor variable(s) were excluded\n"))
variable_levels <- levels(survey_data[ , variable ])
variable_levels_length <- length(variable_levels)
# Initializing the data.frame which will gather the results
result <- data.frame("Variable", "Levels", t(rep(1, each=variable_levels_length)))
result_column_names <- paste(variable, variable_levels, sep=".")
names(result) <- c("Variable", "Levels", result_column_names)
for(column in 1:length(names(survey_data))){
column_levels_length <- length(levels(survey_data[ , column ]))
result_block <- as.data.frame(rep(names(survey_data)[column], each=column_levels_length))
result_block <- cbind(result_block, as.data.frame(levels(survey_data[,column])))
names(result_block) <- c("Variable", "Levels")
results <- table(survey_data[ , column ], survey_data[ , variable ])
if(calc=="perc"){
results <- apply(results, MARGIN=2, FUN=function(x){ x/sum(x) })
results <- round(results*100, 1)
}
results <- unclass(results)
results <- as.data.frame(results)
names(results) <- result_column_names
rownames(results) <- NULL
result_block <- cbind(result_block, results)
result <- rbind(result, result_block)
}
result <- result[-1,]
return(result)
}
khi bạn nói _like các picture_, bạn mở cửa cho những cải tiến hay không nó phải khớp chính xác với định dạng đó? :) –
Mở để cải tiến :) –