我有一个基因名称的df和那些基因的值的df。我想将两者结合起来(用基因名称标记数据框)。
我有一个1x23000 df,“基因”:
AB1G, A1CF, ..., ZYY1
和8000x23000 df,“表达式”:
1 0 ... 3
0 0 ... 1
2 2 ... 0
我想将它们合并为一个df:
A1BG A1CF ... ZYY1
1 0 ... 3
0 0 ... 1
2 2 ... 0
当我使用rbind时,保留了基因名称,但“表达式”中的所有非零值都变为N / A。
当我使用colnames(表达式)= genes或colnames(expression)= paste(genes)时,保留了表达式编号,但基因名称被转换为看似毫无意义的数字。
[经过进一步的调查,我发现“基因”的结构出于某种原因是“因子”-当我用as.character进行转换时,所有基因都被重新分配了,似乎是一个随机数(AB1G现在为1143,A1CF现在为967等)。
我认为基因和dfs表达格式不兼容可能会产生问题。如何将字符列名称添加到数字df?
出现数字值而不是字符串的问题是因为列为factor
,并且当列被强制为整数存储模式值时。相反,我们可以在character
之后转换为unlist
类,或转换为matrix
,后者会自动将类转换为character
,然后用dim
删除c
属性(以转换为vector
)
colnames(expression) <- as.character(unlist(genes))
或
colnames(expression) <- c(as.matrix(genes))