我有一個 .tsv 檔案,我使用正確的引數將其加載到 R 中。這是我要轉置的資料框(解釋如下:https ://www.dataanalytics.org.uk/rotating-or-transposing-r-objects/ )。資料框:
GCA_910579985.1_MGBC115109_genomic_prkk
OG0000000 20
OG0000001 9
OG0000002 13
OG0000003 6
OG0000004 14
OG0000005 4
GCA_910578415.1_MGBC110107_genomic_prkk
OG0000000 15
OG0000001 6
OG0000002 8
OG0000003 5
OG0000004 3
OG0000005 3
我為此目的使用 t 函式:
tdata<-t(data)
我已經強制變數資料進入資料框并進入矩陣只是為了測驗然后,有一個錯誤,因為所有的矩陣都變成了0、1和2
OG0000000 OG0000001 OG0000002 OG0000003 OG0000004 OG0000005
GCA_910579985.1_MGBC115109_genomic_prkk 0 0 0 1 1 0
GCA_910578415.1_MGBC110107_genomic_prkk 1 1 1 0 0 2
這是錯誤的,因為原始值正在發生變化,例如,這是我的預期結果:
OG0000000 OG0000001 OG0000002 OG0000003 OG0000004 OG0000005
GCA_910579985.1_MGBC115109_genomic_prkk 20 9 13 6 14 4
GCA_910578415.1_MGBC110107_genomic_prkk 15 6 8 5 3 3
所以,很明顯,這里的函式正在改變原始值。有什么想法或評論嗎?
uj5u.com熱心網友回復:
首先,請始終通過粘貼dput(your_data). 您的資料,作為資料框df是這些:
df <-
## output of dput
structure(list(ID = c("OG0000000", "OG0000001", "OG0000002",
"OG0000003", "OG0000004", "OG0000005"), GCA_910579985.1_MGBC115109_genomic_prkk = c(15L, 6L, 8L, 5L, 3L, 3L), GCA_910578415.1_MGBC110107_genomic_prkk = c(20L,
9L, 13L, 6L, 14L, 4L)), class = "data.frame", row.names = c(NA,
6L))
從數字到字符的型別轉換發生在資料幀的轉置t時。您可以按如下方式規避它(df是您的資料框):
library(dplyr) ## provides the pipe operator %>%
df %>% as.matrix %>% t %>% as.data.frame
雖然管道運算子%>%不是必需的,但我用它來強調轉換的順序。它相當于as.data.frame(t(as.matrix(df))).
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462250.html
標籤:r
下一篇:R:你如何按方差排序錯誤圖?
