R中的列名-名称字符串的替换部分

R中的列名-名称字符串的替换部分,r,R,我有X745.971008.nanomes作为列名,但我不知道如何按以下格式制作: 我希望列名称如下:745.971008_nm 或者更好,波长四舍五入到3 dp:745.971_nm 我已经尝试过:names(df)要实现这一点,请尝试使用rename\u all和str\u replace\u all 我想这是最准确的方法,因为它按照您的要求对变量名中的值进行四舍五入: df% 堆栈()%>% 突变(ind=str_替换(ind,'X',''), ind=str_替换(ind,'.纳米','

我有
X745.971008.nanomes
作为列名,但我不知道如何按以下格式制作:

我希望列名称如下:
745.971008_nm

或者更好,波长四舍五入到3 dp:
745.971_nm


我已经尝试过:
names(df)要实现这一点,请尝试使用
rename\u all
str\u replace\u all

我想这是最准确的方法,因为它按照您的要求对变量名中的值进行四舍五入:

df%
堆栈()%>%
突变(ind=str_替换(ind,'X',''),
ind=str_替换(ind,'.纳米',''),
ind=粘贴(圆形(如数字ind,数字=3),“\u nm”)%>%
取消堆栈(df2,形式=值~ind)%>%
全部重命名(
funs(
stringr::str_替换_全部(,'X','')
)
) %>% 
全部重命名(
funs(
stringr::str_替换_全部(,,,,,,,,,)
)
)
#>743.972_纳米745.971_纳米
#> 1          1          1
#> 2          2          2
#> 3          3          3
#> 4          4          4
#> 5          5          5
于2021-03-18年由(v0.3.0)创建

df%
全部重命名(
funs(
stringr::str_替换_全部(,'X','')
)
) %>% 
全部重命名(
funs(
stringr::str_替换_all(,'.nanomes','u nm'))
)
)
#>745.971008_纳米743.971999_纳米
#> 1             1             1
#> 2             2             2
#> 3             3             3
#> 4             4             4
#> 5             5             5
于2021-03-18年由(v0.3.0)创建

df%
全部重命名(
funs(
stringr::str_替换_全部(,'X','')
)
) %>% 
全部重命名(
funs(
stringr::str_替换_all(,“\\d\\d\\d.nanomes”,“\u nm”)
)
)
#>745.971_纳米743.971_纳米
#> 1          1          1
#> 2          2          2
#> 3          3          3
#> 4          4          4
#> 5          5          5

由(v0.3.0)创建于2021-03-18。您可以使用
sub

x <- 'X745.971008.Nanometers'
sub('X(\\d+\\.\\d+).Nanometers', '\\1_nm', x)
#[1] "745.971008_nm"
colnames(df) <- sub('X(\\d+\\.\\d+).Nanometers', '\\1_nm', colnames(df))
paste0(round(as.numeric(sub('X(\\d+\\.\\d+).Nanometers', '\\1',x)), 3), '_nm')
#[1] "745.971_nm"