You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将R dataframe每行数据拼接为键值对格式存入新增列

R DataFrame 每行拼接为键值对字符串实现方案

首先提供测试数据构造代码,方便你直接复现效果:

# 构造示例测试数据
df <- data.frame(
  city = c("Atlanta", "New York", "Atlanta", "Tampa"),
  rev = c(63.0, 10.6, 12.0, 3.0),
  qty = rep(1, 4),
  zip = c(45987, 12686, 74268, 33684)
)

方法1:Base R 实现(无需依赖第三方包)

直接用apply按行遍历拼接,可灵活控制数值格式,和你示例要求的rev保留2位小数的效果完全匹配:

df$key_value <- apply(df, 1, function(row) {
  paste0(
    "city=", row["city"], ";",
    "rev=", sprintf("%.2f", as.numeric(row["rev"])), ";",
    "qty=", row["qty"], ";",
    "zip=", row["zip"]
  )
})

如果你的表列数较多,不想逐个写列名,可以用通用适配版本,自动读取所有列名拼接:

# base R 通用适配任意列数版本
df$key_value <- apply(df, 1, function(row) {
  paste0(names(df), "=", row, collapse = ";")
})

方法2:tidyverse 实现(代码更简洁)

如果你习惯使用tidyverse生态,可以用purrr的pmap函数实现:

library(dplyr)
library(purrr)

df <- df %>%
  mutate(key_value = pmap_chr(., function(city, rev, qty, zip) {
    sprintf("city=%s;rev=%.2f;qty=%d;zip=%d", city, rev, qty, zip)
  }))

内容的提问来源于stack exchange,提问作者ThirdEye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:36:04