R 将列名指定给df,是否阻止字符自动转换为数字?
我有一个基因名称的df和这些基因的值的df。我想将两者结合起来(用基因名称标记数据框) 我有一个1x23000 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)
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))