R语言中数值格式化与textplot输出问题咨询
How to Format Summary Numbers with Commas for textplot
Got it, let's break this down for you. The key is to format the numeric values before passing them to textplot and format.df—since the raw summary() output doesn't handle thousand separators automatically. Here's a step-by-step solution:
Step 1: Convert Summary Output to a Data Frame and Format Values
First, we'll turn your summary result into a manipulable data frame, then apply thousand separators to the numeric column using format():
# Generate the summary and convert to a data frame daily_col <- as.data.frame(daily[,1]) summary_result <- summary(daily_col) summary_df <- as.data.frame(summary_result) # Rename the column for clarity (matches your original output's "sma" label) colnames(summary_df) <- "sma" # Format the numeric values: add thousand commas and keep 2 decimal places summary_df$sma <- format(summary_df$sma, big.mark = ",", nsmall = 2)
This will transform values like -8285.31 to -8,285.31 directly in the data frame.
Step 2: Update Your textplot Call
Now pass the formatted data frame to format.df and textplot. We adjust the cdec parameter to match our 2 decimal places (ensuring consistency with your original output):
textplot( format.df(summary_df, na.blank = TRUE, numeric.dollar = FALSE, cdec = rep(2, nrow(summary_df))), rmar = 0.8, cmar = 1, max.cex = .9, halign = "center", valign = "top", row.valign = "center", wrap.rownames = 20, wrap.colnames = 10, col.rownames = rep("black", nrow(summary_df)), # Avoid hardcoding row counts mar = c(0, 0, 3, 0) + 0.1 )
Quick Notes:
- We replaced
dim(result)[1]withnrow(summary_df)to make the code more flexible (no need to update if your summary row count changes). - The
format()function'sbig.mark = ","is what adds the thousand separators, andnsmall = 2preserves the decimal precision from your original output.
内容的提问来源于stack exchange,提问作者Augusto
相关产品推荐
相关产品推荐

