R语言中table()与prop.table()输出格式化:整数与两位小数
解决R语言频率占比表格格式化问题
可以通过分步处理频率和比例的格式,再组合输出的方式实现需求:
- 计算基础统计量
先分别提取频率(转为整数)和占比(保留两位小数):
# 生成频率表 freq_table <- table(KN5FMc$LW_MT) # 频率转为整数 freq <- as.integer(freq_table) # 计算占比并保留两位小数 prop <- round(100 * prop.table(freq_table), 2)
- 组合并格式化输出
将处理后的两行数据绑定为矩阵,再控制输出格式:
# 组合成结果矩阵 result <- rbind(Freq = freq, Prop = prop) # 右对齐输出,去掉引号 print(result, quote = FALSE, right = TRUE)
执行后输出的表格会自动对齐,Freq行显示整数,Prop行保留两位小数,符合需求:
1 2 8 9 Freq 8723 2017 2146 151 Prop 66.91 15.47 16.46 1.16
如果需要更精细的列宽控制,可以用format()函数调整每一行的显示格式:
# 按行格式化 formatted <- t(apply(result, 1, function(row) { if (rownames(result)[which(row == result)] == "Freq") { format(row, digits = 0, justify = "right", width = 6) } else { format(row, digits = 2, nsmall = 2, justify = "right", width = 6) } })) print(formatted, quote = FALSE)
内容的提问来源于stack exchange,提问作者D. Shin
相关产品推荐
相关产品推荐

