names(iris) [1] "Sepal.Length" "Sepal.Wid-6ren">
gpt4 book ai didi

r - 在 R 中的列名中间插入文本

转载 作者:行者123 更新时间:2023-12-01 11:25:19 25 4
gpt4 key购买 nike

我想插入一个字符串 "_2010_".之后在colnamesdata.frame

data("iris")

> names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"

期望的输出:

[1] "Sepal._2010_Length" "Sepal._2010_Width"  "Petal._2010_Length" "Petal._2010_Width"  "Species"  

帮助?

编辑:相关问题:现在如何插入字符串 "_2010_" 之前 .

[1] "Sepal_2010_.Length" "Sepal_2010_.Width"  "Petal_2010_.Length" "Petal_2010_.Width"  "Species"  

最佳答案

我们可以使用 sub 和 'iris' 的 names 有一个 . (通过 grep)。在这里,我们使用捕获组 ((...)) 并替换为反向引用 (\\1) 以及新添加的子字符串 (_2010_).

i1 <- grep("[.]", names(iris))
name(iris)[i1] <- sub("([^.]+.)(.*)", "\\1_2010_\\2", names(iris)[i1])

或者使用单个捕获组,我们匹配一个点 (.\\) 后跟字符,直到捕获组中字符串的末尾。将其替换为一个点,后跟子字符串和反向引用。

sub("\\.(.*)", "._2010_\\1", names(iris))
#[1] "Sepal._2010_Length" "Sepal._2010_Width" "Petal._2010_Length"
#[4] "Petal._2010_Width" "Species"

如果我们需要 . 之前的字符串,只需更改替换中字符串的放置顺序

sub("\\.(.*)", "_2010_.\\1", names(iris))
#[1] "Sepal_2010_.Length" "Sepal_2010_.Width" "Petal_2010_.Length"
#[4] "Petal_2010_.Width" "Species"

关于r - 在 R 中的列名中间插入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37762914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com