如果你想了解我的问题来自哪里(我实际上想要合并数据集,那么可能有人知道一种更有效的方法),下面是关于我的数据集的一些背景信息。
问题: 如何只替换R中变量名的最后一个字符(对于多个变量)?
我尝试使用sub()函数并且工作正常,但是,一些变量名包含我想要多次更改的字符(例如str2tt2)。我只想删除'或者替换最后一个' 2'与空白。
实施例: 假设我有一个包含这些变量名的数据集,我只想删除最后一个' _2'人物,我试过这个:
h_2ello_2 how_2 are_2 you_2
1 1 3 5 7
2 2 4 6 8
names(data) <- sub('_2', '', names(data))
输出:
hello_2 how are you
1 1 3 5 7
2 2 4 6 8
现在,我希望我的代码删除最后一个&#39; _2&#39;,以便它返回&#39; h_2ello&#39;而不是hello_2。
有谁知道怎么做? 提前谢谢!
背景资料:
我目前正在尝试从三个独立的数据集构建数据集。这三个不同的测量时刻来自三个不同的测量时刻,因此它们的变量名称包括每个变量名称后面的字符,分别对应于它们的测量时刻。也就是说,对于测量时刻2,变量名称是scoreA2,scoreB2,scoreC2,对于测量时刻3,变量名称是scoreA3,scoreB3和scoreC3。
由于我想将这些文件合并在一起,我想删除&#39; 2&#39;和&#39; 3&#39;在数据集中然后合并它们,以便似乎每个人都在同一时刻进行测量。
但是,一些乐谱名称也包括角色2和3。例如:str2tt2是Stroop卡2总时间测量时刻2的变量名。我只想删除最后一个&#39; 2&#39;,但是当使用sub()函数时我只删除第一个。< / p>
答案 0 :(得分:0)
我们需要使用元字符$
建议原始数据集列名称的字符串结尾
names(data) <- sub('_2$', '', names(data))
names(data)
#[1] "h_2ello" "how" "are" "you"
在OP的代码中,_2
与h_2ello_2
中的第一个实例匹配,因为它是sub
,并从_2
中移除h_2
。相反,我们需要将位置指定为字符串的最后一个字符。