R如何将字符向量与矩阵数绑定

R how to bind character vector with matrix numbers

我有一个 3*4 矩阵(称为 S1),假设:

1 2 3 4
5 6 7 8
9 1 1 1

我有一个名为 'frequency' 的字符向量:

CX
XU
UK

想法是绑定它们,例如

CX 1 2 3 4
XU 5 6 7 8
UK 9 1 1 1

我试过使用 cbind as

result = cbind(frequency, S1)

但是R产生的结果是

"CX" "1"  "2" "3" "4" 
"XU" "5"  "6" "7" "8"
"UK" "9"  "1" "1" "1" 

知道如何去掉括号吗?

S1是矩阵,矩阵只能容纳一种类型的数据。由于 frequency 是一个字符向量,它也将 S1 值强制转换为字符。

S1转为数据帧

cbind(frequency, data.frame(S1))

cbind.data.frame(frequency, S1)

矩阵只接受一种类型的数据,在您的例子中是将数字转换为字符。我建议你使用数据框的数据结构,索引与矩阵相同。尝试:

result = cbind(frequency, as.dataframe(S1))

Generate data

frequency <- c("CU", "XU", "UK")
S1 <- matrix(c(1:8,9,1,1,1), nrow = 3, ncol = 4, byrow=TRUE)

One can use this

cbind.data.frame(freq=frequency,s1=S1)

Output

  freq s1.1 s1.2 s1.3 s1.4
1   CU    1    2    3    4
2   XU    5    6    7    8
3   UK    9    1    1    1