[英]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.