如何为R语言数据集添加单引号(支持全量与指定索引列两种场景)
R 数据框元素添加单引号实现方案
测试数据集
structure(list(numero_certificado = c("1234", "5678" ), sitio_defuncion = c("HOSPITAL/CLINICA", "HOSPITAL/CLINICA" ), tipo_defuncion = c("NO FETAL", "NO FETAL"), fecha_defuncion = structure(c(1635861000, 1635874800), tzone = "", class = c("POSIXct", "POSIXt")), tipo_documento_fallecido = c("REGISTRO CIVIL", "CEDULA DE CIUDADANIA"), documento_fallecido = c("1111", "2222")), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"))
需求实现
1. 为全数据集所有元素添加单引号
该实现会统一处理所有列的所有元素,忽略原数据类型:
base R 写法
# 假设你的数据框命名为df df[] <- lapply(df, function(x) paste0("'", x, "'"))
dplyr 写法
library(dplyr) df <- df %>% mutate(across(everything(), ~paste0("'", .x, "'")))
2. 仅为指定列的元素添加单引号
可以通过列索引或者列名指定需要修改的列,数值、日期等不需要修改的列保留原格式,示例中跳过第4列的日期类型数据:
按列索引实现(base R)
# 定义需要添加单引号的列索引,示例中为1、2、3、5、6列 target_cols <- c(1,2,3,5,6) df[target_cols] <- lapply(df[target_cols], function(x) paste0("'", x, "'"))
按列名实现(dplyr,更稳妥不易出错)
library(dplyr) df <- df %>% mutate(across( c(numero_certificado, sitio_defuncion, tipo_defuncion, tipo_documento_fallecido, documento_fallecido), ~paste0("'", .x, "'") ))
运行上述代码后得到的结果和你给出的预期效果完全一致。
内容的提问来源于stack exchange,提问作者Andres Mora
相关产品推荐
相关产品推荐

