r-使用merge()合并2个数据帧会产生错误:sort.list(bx[m$neneneba xi])中出错



我创建了两个数据帧:

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"))

但我得到了这个错误:

sort.list(bx[m$neneneba xi])中出错:"x"必须是"sort.list"的原子你在名单上叫"排序"了吗?

我做错了什么?

错误背后的原因是,在您提到的数据帧中,列存储为list,而不是基本数据类型,如整数、数字、字符、因子等。

当一个人运行这个命令时,就会对发生的事情有一些真正的了解

> str(df1)
'data.frame':   2 obs. of  2 variables:
 $ gene:List of 2
  ..$ : chr "a"
  ..$ : chr "b"
 $ fc  :List of 2
  ..$ : num 1
  ..$ : num 2

解决方案:

1) 你可以这样存储数据帧:

df1 <- data.frame(gene = c('a','b'),fc = c(1,2))
df2 <- data.frame(gene = c('a','b','c'),fc = c(1,2,3))
merge(df1,df2,by='gene')

相关内容

  • 没有找到相关文章