R语言中的sprintf函数
sprintf 是格式化的字符串打印(string print formatted) 的简称。这个函数名来源于 C 语言,用于将格式化的数据输出保存到字符串中。在多种编程语言中,包括 R 语言,sprintf 都是用来生成按照特定格式排列的字符串,非常适合于创建结构化的输出或处理字符串中的数据格式化。
sprintf 的基本语法如下:
sprintf(fmt, ...)
格式说明符
在格式字符串 fmt 中,可以包含一个或多个格式说明符。格式说明符通常以 % 符号开始,后面跟上格式化的指示符,例如:
%s:格式化字符串。
%d:格式化整数。
%f:格式化浮点数。
%e 或 %E:以科学记数法格式化浮点数。
%g 或 %G:自动选择 %f 或 %e,取决于数值的大小。
示例: 基本字符串格式化
name <- "Pan feng"
age <- 30
info <- sprintf("My name is %s and I am %d years old.", name, age)
print(info)
# [1] "My name is Pan feng and I am 30 years old."
示例:指定最小宽度
sprintf("Name: %10s", name)
#[1] "Name: Pan feng"
这里 %10s
表示输出宽度至少为10个字符,如果 name
长度小于10,则左边会填充空格(默认右对齐)。
示例:精度控制
sprintf("Name: %.5s", name)
# [1] "Name: Pan f"
这里 %.5s
表示最多输出5个字符。
示例: 数字格式化
格式化浮点数,保留两位小数
value <- 3.14159
formatted <- sprintf("%.2f", value)
print(formatted)
# [1] "3.14"
示例:混合数据类型,使用不同的格式说明符
sprintf("Name: %s, Age: %d, Height: %.2f meters", "Pan feng", 30, 1.75)
# [1] "Name: Pan feng, Age: 30, Height: 1.75 meters"
示例: sprintf
与cat
联合使用
cat这个函数的名称来自 Unix 命令行工具 cat(concatenate 的缩写),用来显示文件的内容。在 R 中,cat 主要用于输出而不是合并内容。cat 函数主要用于将内容组合并输出,它不会像 print 函数那样在每个元素之间插入换行符。cat 函数的参数可以是任意数量的 R 对象,通常是字符串或向量,输出时可以使用自定义的分隔符和结束符。
#### 设置数据
dates <- c("2024-08-01", "2024-08-02", "2024-08-03")
temperatures_c <- c(22.5, 25.2, 20.6) # 摄氏度
status <- c("sunny", "cloudy", "rainy")
#### 转换摄氏度到华氏度
temperatures_f <- temperatures_c * 9/5 + 32
#### 生成报告
report <- sprintf("Date: %s, Temp: %.1fC/%.1fF, Status: %s",
dates, temperatures_c, temperatures_f, status)
#### 打印每条报告
cat(report, sep="\n")
# Date: 2024-08-01, Temp: 22.5C/72.5F, Status: sunny
# Date: 2024-08-02, Temp: 25.2C/77.4F, Status: cloudy
# Date: 2024-08-03, Temp: 20.6C/69.1F, Status: rainy