R 将列名指定给df,是否阻止字符自动转换为数字?

R 将列名指定给df,是否阻止字符自动转换为数字?,r,R,我有一个基因名称的df和这些基因的值的df。我想将两者结合起来(用基因名称标记数据框) 我有一个1x23000 df,“基因”: AB1G,A1CF,…,ZYY1 和8000x23000 df,“表达式”: 10。。。3 0 0。。。1 22。。。0 我想将它们合并为一个df: A1BG A1CF。。。ZYY1 10。。。3 0 0。。。1 22。。。0 当我使用rbind时,基因名会被保留,但“expression”中的所有非零值都会变成N/A 当我使用colnames(expression)

我有一个基因名称的df和这些基因的值的df。我想将两者结合起来(用基因名称标记数据框)

我有一个1x23000 df,“基因”:

AB1G,A1CF,…,ZYY1

和8000x23000 df,“表达式”:

10。。。3

0 0。。。1

22。。。0

我想将它们合并为一个df:

A1BG A1CF。。。ZYY1

10。。。3

0 0。。。1

22。。。0

当我使用rbind时,基因名会被保留,但“expression”中的所有非零值都会变成N/A

当我使用colnames(expression)=genes或colnames(expression)=paste(genes)时,表达式编号会保持不变,但基因名称会转换为看起来毫无意义的数字

在进一步调查后,我发现“基因”的结构出于某种原因是“因子”——当我用as.character转换时,所有基因都会被重新分配,看起来像是一个随机数(AB1G现在是1143,A1CF现在是967,等等)


我认为可能是基因和表达格式不兼容的问题。如何将字符列名添加到数字df?

出现数字值而不是字符串的问题是因为列是
因子,并且当它被强制为整数存储模式值时。相反,我们可以在
取消列表
后转换为
字符
类,或者转换为
矩阵
,该矩阵会自动将类转换为
字符
,然后使用
c
删除
dim
属性(转换为
向量


colnames(expression)可能是您需要的
colnames(expression)尝试创建一个可复制的示例,基本R代码为我们提供两个数据帧,可能是您数据的5行样本。我们需要一些能够在我们这边复制的东西,以便帮助或理解您的问题是什么。还可以创建一个理想状态修复后的示例。
 colnames(expression) <- as.character(unlist(genes))
colnames(expression) <- c(as.matrix(genes))