1
我創建2個數據幀:
x = list("a", "b",1,2)
m1=matrix(x,2,2)
colnames(m1) <- c("gene", "fc")
y = list("A", "B", "C",1,2,3)
m2 = matrix(y,3,2)
colnames(m2) <- c("gene", "fc")
df1 <- as.data.frame(m1)
df2 <- as.data.frame(m2)
我嘗試使用合併這些數據幀2:
merged <- merge(df1, df2, by=("gene"))
但我得到這個錯誤:
Error in sort.list(bx[m$xi]) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list?
我做錯了嗎?
有沒有辦法強迫列表級我的數據的基礎數據? – ALejandro
是的。有一種方法。但在這種情況下,所有元素將只有一種類型。你可以去'unlist()'函數 –
@ALejandro;有一點需要注意的是基因在兩個數據框中是不同的情況,因此沒有共同的基因可以匹配。所以先強制降低(或大寫)。然後你可以合併'df2 $ gene < - tolower(df2 $ gene);合併(lapply(df1,unlist),lapply(df2,unlist),by =「gene」,all = TRUE)'。不過,我會盡量避免將數據放在這樣的格式中。 – user20650