[英]Converting column values from factors into column names and assigning them values
[英]Assigning column names to df, stop characters from automatically converting to numbers?
我有一个 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(expression)=genes 或 colnames(expression)=paste(genes) 时,表达式编号保持不变,但基因名称被转换为看似无意义的数字。
经过进一步调查,我发现“基因”的结构出于某种原因是“因子”——当我使用 as.character 进行转换时,所有基因都被重新分配,看起来像是一个随机数(AB1G 现在是 1143,A1CF 现在是 967, ETC)。
我认为基因和表达dfs的格式不兼容可能存在问题。 如何将字符列名称添加到数字 df?
出现数值而不是字符串的问题是因为列是factor
s,并且当它被强制转换为 integer 存储模式值时。 相反,我们可以在 unlisting 后转换为character
unlist
或转换为自动将 class 转换为character
的matrix
,然后使用c
删除dim
属性(转换为vector
)
colnames(expression) <- as.character(unlist(genes))
或者
colnames(expression) <- c(as.matrix(genes))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.