【发布时间】:2014-04-29 08:30:56
【问题描述】:
我有两个相当长的列表(都是 232000 行)。当尝试使用两者运行分析时,R 给我一个错误,即一个列表中的某些元素不在另一个列表中(对于要运行的特定代码,两个列表必须完全相同)。我已经做了以下尝试和破译:
#In Both
both <- varss %in% varsg
length(both)
#What is in Both
int <- intersect(varss,varsg)
length(int)
#What is different in varss
difs <- setdiff(varss,varsg)
length(difs)
#What is different in varsg
difg <- setdiff(varsg,varss)
length(difg)
我认为我的代码是正确的,但我的问题是上面代码的结果没有产生我需要的结果。例如,对于both <- varss %in% varsg,我只能得到一个FALSE。我的两个列表都需要在特定的类中才能起作用吗?我试过data.frame、list 和character。不确定是否需要应用像 function 这样的主要内容。
只是为了提供一些关于我的列表的更多信息,两者都是 SNP 名称(遗传数据)的列表
编辑:
我已将这两个文件加载为readRDS(),但不确定这是否会导致一些问题。当尝试仅使用 varss[1:10,] 时,我得到以下信息:
[1] rs41531144 rs41323649 exm2263307 rs41528348 exm2216184 rs3901846
[7] exm2216185 exm2216186 exm2216191 exm2216198
232334 Levels: exm1000006 exm1000025 exm1000032 exm1000038 ... rs9990343
我对@987654331@ 文件没有什么经验,所以不确定这是否是个问题...
使用varsg[1:10,] 也会发生同样的情况:
[1] exm2268640 exm41 exm1916089 exm44 exm46 exm47
[7] exm51 exm53 exm55 exm56
232334 Levels: exm1000006 exm1000025 exm1000032 exm1000038 ... rs999943
【问题讨论】:
-
我知道您的数据量很大,但您能否提供一个简化示例说明
varss和varsg是什么?最好使用?dput之类的工具 -
这很难弄清楚。但让我在正文中提供更多信息......
-
您能否提供所有这些的输出值:
class(varss)、class(varsg)、length(varss)、length(varsg)、sum(both)、length(int)、length(difs)、@987654344 @ -
class(varss) = "data.frame";class(varsg) = "data.frame";length(varss) = 1;length(varsg)=1;sum(both)= 0;length(int)=0;length(difs)=1;length(diff)=1