R 当我对来自gsub函数的对象使用cbind时,为什么所有的值都被引用?

R 当我对来自gsub函数的对象使用cbind时,为什么所有的值都被引用?,r,R,我有以下矩阵: head(perc) band perc_SC perc_SH perc_WH perc_Tot 1 1 0.009104271 0.6651940 0.3257017 1 2 2 0.008963893 0.6289139 0.3621222 1 3 3 0.008837757 0.6186107 0.3725515 1 4 4 0.008495426 0.6395086 0.3519959

我有以下矩阵:

head(perc)
band     perc_SC   perc_SH   perc_WH perc_Tot
1    1 0.009104271 0.6651940 0.3257017        1
2    2 0.008963893 0.6289139 0.3621222        1
3    3 0.008837757 0.6186107 0.3725515        1
4    4 0.008495426 0.6395086 0.3519959        1
5    5 0.008152846 0.6563294 0.3355178        1
6    6 0.007516888 0.6615440 0.3309391        1
我需要获取文件名并作为列插入,所以我要这样做

key <- names(B)
country <- gsub("\\_.*","",key)

如何避免perc1值中的引号

从层次结构中任何输入的最高类型确定的矩阵结果的类型原始
因此,当您将
numeric
character
列与
cbind
组合时,它会将所有输入转换为
character
,因为这是最高类型。

代码中的
B
是什么?如果
perc
是一个
矩阵
,那么
矩阵
只能容纳一个类。当添加一个字符元素时,它将转换为
字符。尝试使用
cbind(country,as.data.frame(perc))
,因为矩阵不能容纳多种类型。当您
cbind
a带有数字矩阵的字符向量时,它会将所有值转换为最高类型(即字符)B是光栅.tif文件
perc1 <- cbind(country,perc)
> head(perc1)
country       band perc_SC perc_SH perc_WH perc_Tot
"Argentina"   "1"  "0.009" "0.665" "0.325" "1"