1

マトリックス内のすべての列名の最初の文字を削除しようとしています。

mat1 <- matrix(seq(1:6), 2)
dimnames(mat1)[[2]] <- c("bA", "bB", "bC")


bA    bB    bC
1     2     3
4     5     6

これに:

A     B     C
1     2     3
4     5     6

paste()関数を使用すると、列名に追加できることがわかります。反対の機能はありますか?

4

3 に答える 3

8

substring は適切な関数です:

 dimnames(mat1)[[2]] <- substring(dimnames(mat1)[[2]], first=2)

 mat1
     A B C
[1,] 1 3 5
[2,] 2 4 6
于 2012-11-25T23:39:30.220 に答える
4

アプローチに加えて、substring正規表現メソッドを使用できます。

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

「セパレーター」がある場合は、次も使用できますstrsplit

?strsplit
 colnames(mat1) <- sapply( strsplit( c("b_A", "b_B", "b_C"), "_"), "[", 2)
于 2012-11-26T07:55:32.487 に答える