r - 使用列名称为列内容添加前缀/后缀
问题描述
我想改变数据框的列内容,以便单元格内容以列名为前缀:
> x <- data.frame(VarX = rep(c("A","B"),2), VarY = rep(c("C","D"),2))
> x
VarX VarY
1 A C
2 B D
3 A C
4 B D
> x$VarX <- paste0("VarX", x$VarX)
> x$VarY <- paste0("VarY", x$VarY)
> x
VarX VarY
1 VarXA VarYC
2 VarXB VarYD
3 VarXA VarYC
4 VarXB VarYD
但一般。我得到的最远关闭是:
x <- data.frame(VarX = rep(c("A","B"),2), VarY = rep(c("C","D"),2))
columns = c("VarX", "VarY")
for(col in columns)
{
x <- x %>% mutate_at( .vars = col, ~paste0(col, .) )
}
x
但我不喜欢 for 循环。任何人都可以改进代码吗?
另请注意处理 x 列选择的代码。
x <- data.frame(VarX = rep(c("A","B"),2), VarY = rep(c("C","D"),2),
num = 1:4)
我只想修改列 VarX 和 VarY。
解决方案
你可以试试mapply
,即
x[] <- mapply(paste0, names(x), x)
这使,
VarX VarY 1 VarXA VarYC 2 VarXB VarYD 3 VarXA VarYC 4 VarXB VarYD
推荐阅读
- mysql - 使用 Prisma 的 MySQL 锻炼应用模式
- opencv - 使用 OpenCV 将导出的深度神经网络运行为 onnx 格式时出错
- javascript - 如何修改此代码以在循环内创建循环?
- javascript - 使用 else-if 和 JavaScript 有什么区别
- python - 从列表python中删除循环/重复
- webpack-5 - Webpack 5 共享块文件名
- shopify - 如何在shopify后台添加第三方加速结账方式
- excel - 将查找类型字段从 excel 导入 Power Apps Dataverse 时出现问题
- javascript - 如何将 JS 变量分配给 JSON 路由
- ios - 在 MacOS Big Sur 上找不到“openssl/conf.h”文件错误