Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从一组数据帧重命名行名称_R_String - Fatal编程技术网

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"))