String 在r中编辑矩阵的列名(即从中删除字符)时,是否有与paste()相反的函数?
我希望删除矩阵中每个列名的第一个字符String 在r中编辑矩阵的列名(即从中删除字符)时,是否有与paste()相反的函数?,string,r,substring,paste,substr,String,R,Substring,Paste,Substr,我希望删除矩阵中每个列名的第一个字符 mat1 <- matrix(seq(1:6), 2) dimnames(mat1)[[2]] <- c("bA", "bB", "bC") bA bB bC 1 2 3 4 5 6 我知道使用paste()函数,您可以在列名后面追加内容;是否有相反的功能?子字符串是合适的功能: dimnames(mat1)[[2]] <- substring(dimnames(mat1)[[2]], f
mat1 <- matrix(seq(1:6), 2)
dimnames(mat1)[[2]] <- c("bA", "bB", "bC")
bA bB bC
1 2 3
4 5 6
我知道使用
paste()
函数,您可以在列名后面追加内容;是否有相反的功能?子字符串是合适的功能:
dimnames(mat1)[[2]] <- substring(dimnames(mat1)[[2]], first=2)
mat1
A B C
[1,] 1 3 5
[2,] 2 4 6
dimnames(mat1)[[2]]子字符串是合适的函数:
dimnames(mat1)[[2]] <- substring(dimnames(mat1)[[2]], first=2)
mat1
A B C
[1,] 1 3 5
[2,] 2 4 6
dimnames(mat1)[[2]]除了子字符串
方法之外,您还可以使用regex方法:
?regex
colnames(mat1) <- sub('^\\.', "", colnames(mat1) ) # removes first letter
# the next one removes lower-case letters which for some reason Jilber has already posted but deleted
colnames(mat1) <- sub("[a-z]", "", colnames(mat1) )
除了子字符串
方法外,还可以使用正则表达式方法:
?regex
colnames(mat1) <- sub('^\\.', "", colnames(mat1) ) # removes first letter
# the next one removes lower-case letters which for some reason Jilber has already posted but deleted
colnames(mat1) <- sub("[a-z]", "", colnames(mat1) )
striu sub
功能来自stringi
软件包
require(stringi)
stri_sub(c("aA","bB","aC"),2)
## [1] "A" "B" "C"
striu sub
功能来自stringi
软件包
require(stringi)
stri_sub(c("aA","bB","aC"),2)
## [1] "A" "B" "C"
请注意,您可以在作业两侧使用表达式colnames(mat1)
而不是dimnames(mat1)[[2]]
(正如刚才删除的答案中所使用的那样)。请注意,您可以在作业两侧使用表达式colnames(mat1)
而不是dimnames(mat1)[[2]
(正如刚才删除的答案中所使用的那样)。这与矩阵无关。它操作的是字符向量dimnames()
。这与矩阵无关。它操作的是字符向量dimnames()
。