R 从一组数据帧重命名行名称
我想从以下位置重命名这组数据帧的行名:R 从一组数据帧重命名行名称,r,string,R,String,我想从以下位置重命名这组数据帧的行名: names <chr> 1 Reporter_intensity_corrected_0___1 2 Reporter_intensity_corrected_0___2 3 Reporter_intensity_corrected_0___3 4 Reporter_intens
names
<chr>
1 Reporter_intensity_corrected_0___1
2 Reporter_intensity_corrected_0___2
3 Reporter_intensity_corrected_0___3
4 Reporter_intensity_corrected_1___1
5 Reporter_intensity_corrected_1___2
...
名称
1报告者\u强度\u校正\u 0\u 1
2报告者\u强度\u校正\u 0 \u 2
3报告者\u强度\u校正\u 0\u 3
4报告者\u强度\u校正\u 1 \u 1
5报告者强度校正1 2
...
致:
名称
1报告者\u强度\u校正\u 0
2报告者\u强度\u校正\u 0
3报告者\u强度\u校正\u 0
4报告者\u强度\u校正\u 1
5报告者\u强度\u校正\u 1
...
(删除3个下划线和后面的数字)
我可以尝试什么?在
dplyr
和stringr
中使用正则表达式
df %>%
mutate(names = str_remove_all(names, "(_+_+_+\\d)")
在base R中,您可以使用
sub
来添加3个下划线和一个数字
df <- transform(df, names = sub('_{3}\\d+$', '', names))
df
# names
#1 Reporter_intensity_corrected_0
#2 Reporter_intensity_corrected_0
#3 Reporter_intensity_corrected_0
#4 Reporter_intensity_corrected_1
#5 Reporter_intensity_corrected_1
df
df <- transform(df, names = sub('_{3}\\d+$', '', names))
df
# names
#1 Reporter_intensity_corrected_0
#2 Reporter_intensity_corrected_0
#3 Reporter_intensity_corrected_0
#4 Reporter_intensity_corrected_1
#5 Reporter_intensity_corrected_1
df <- structure(list(names = c("Reporter_intensity_corrected_0___1",
"Reporter_intensity_corrected_0___2", "Reporter_intensity_corrected_0___3",
"Reporter_intensity_corrected_1___1", "Reporter_intensity_corrected_1___2"
)), class = "data.frame", row.names = c("1", "2", "3", "4", "5"))