M = matrix(1:9,3,3)
colnames(M)=c('a','b','c')
Run Code Online (Sandbox Code Playgroud)
假设我有一个矩阵M,列名为'a','b','c'.我想删除名字,以便M
M [,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Run Code Online (Sandbox Code Playgroud)
而不是
a b c
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
RHe*_*tel 14
你可以试试
colnames(M) <- NULL
Run Code Online (Sandbox Code Playgroud)
使用你的例子:
> M
# a b c
#[1,] 1 4 7
#[2,] 2 5 8
#[3,] 3 6 9
> colnames(M) <- NULL
> M
# [,1] [,2] [,3]
#[1,] 1 4 7
#[2,] 2 5 8
#[3,] 3 6 9
Run Code Online (Sandbox Code Playgroud)
但是,如果您的数据存储在data.frame而不是矩阵中,则无法使用.如下所述?data.frame:
列名称应为非空,并且尝试使用空名称将具有不受支持的结果
如果您的数据存储为data.frame(可以检查class(my_data)),您可以尝试将其转换为矩阵M <- as.matrix(my_data).希望这可以帮助.
我知道自问这个问题已经有一段时间了,但是鉴于这是一个交易量很高的问题,我认为这可能很有用。
如果要执行此操作M而不是其列名,则可以尝试
M <- unname(M)
>M
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Run Code Online (Sandbox Code Playgroud)
如果您希望将输出通过管道或嵌套到后续函数中,因为colnames不会返回,则效率会更高M。