r - 将字符从列名的开头移动到列名的结尾
问题描述
我有一个数据集,其中列名有前缀(对应于面板波),例如
a_age
a_sex
a_jbstat
b_age
b_sex
b_jbstat
我想将前缀转换为后缀,使其变为:
age_a
sex_a
jbstat_a
age_b
sex_b
jbstat_b
我将不胜感激有关有效方法的建议。
解决方案
您可以使用sub
和反向引用:
sub("([a-z])_([a-z]+)", "\\2_\\1", x)
[1] "age_a" "sex_a" "jbstat_a" "age_b" "sex_b" "jbstat_b"
反向引用\\1
和\\2
召回两个捕获组中的确切字符串,([a-z])
由\\1
和([a-z]+)
召回,由 召回\\2
。为了获得所需的字符串更改,这些“回忆”在替换参数中简单地反转为sub
。
编辑:
如果元素是列名,您可以这样做:
names(df) <- sub("([a-z])_([a-z]+)", "\\2_\\1", names(df))
推荐阅读
- rest - 包含文本“${”的休息呼叫未按预期工作
- android - 如何在电子邮件验证中允许特殊字符?
- time-complexity - 算法的时间复杂度 - for 循环
- javascript - Ubuntu 中的 NodeJS 不会将 console.log() 打印到终端
- swift - 导航控制器无法正常工作去另一个视图控制器?
- java - 如果我在一个活动中写一个文本,它会将文本保存在所有活动中,我使用 sharedpreference 我该如何解决这个问题?
- php - 我的问题是我想在 php 注册表单中注册用户,但问题是它不能添加到数据库中
- python - 如何在 Windows 10 上使用 anadonda 安装 turicreate
- sql - SAS IOM 数据提供程序 - 拒绝访问 - SSIS 连接
- git-bash - 如何创建键盘快捷键以在 Windows 中打开 Git Bash?