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