Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 两个列表之间的重采样重叠_R_Random_Overlap_Resampling - Fatal编程技术网

R 两个列表之间的重采样重叠

R 两个列表之间的重采样重叠,r,random,overlap,resampling,R,Random,Overlap,Resampling,我有两个.txt文件。这两个文件都是字符串列表,每行一个字符串 GRIM1 PHOXA2 SLITRK4 两个文本文件都有约20000行长。我想从文件1中随机抽取500个字符串,从文件2中随机抽取700个字符串。 然后我想计算两个子集重叠的字符串数。 然后我想重复这个过程100次,并计算100次重采样中重叠这些子集的最小、最大和平均字符串数 我试图修改一些用于类似任务的代码,但出现了一个错误: sample.int(长度(x)、大小、替换、prob)中存在错误: 当“replace=FALSE

我有两个.txt文件。这两个文件都是字符串列表,每行一个字符串

GRIM1
PHOXA2
SLITRK4
两个文本文件都有约20000行长。我想从文件1中随机抽取500个字符串,从文件2中随机抽取700个字符串。 然后我想计算两个子集重叠的字符串数。
然后我想重复这个过程100次,并计算100次重采样中重叠这些子集的最小、最大和平均字符串数

我试图修改一些用于类似任务的代码,但出现了一个错误:

sample.int(长度(x)、大小、替换、prob)中存在错误: 当“replace=FALSE”时,无法获取大于总体的样本

该代码是:

listA <- read.csv(file="file1.txt", header=F)
listB <- read.csv(file="file2.txt", header=F)

listA <- as.character(listA) # to check that you really have a vector of gene names #maybe you have to do: listA <- as.character(listA)
listB <- as.character(listB) 

res <- rep(NA, 100) 
genesToDraw <- 500 # how many to select 
genesToDraw2 <- 700 # if you want to take different number from second list

for(i in 1:length(res)){

drawA <- sample(x=listA, size=genesToDraw, replace=FALSE)
drawB <- sample(x=listB, size=genesToDraw2, replace=FALSE) # or size=genesToDraw2

res[i] <- length(intersect(drawA, drawB))
}

hist(res, breaks=20)
table(res)
max(res)
sum(res > 5) # how often i
致以最良好的祝愿


Rubal

正如我们所讨论的,首先,因为您需要字符串,所以在read.csv调用中将stringsAsFactors标志设置为false,这样您就不会弄乱因子

listA <- read.csv(file="file1.txt", header=FALSE, stringsAsFactors=FALSE)
listB <- read.csv(file="file2.txt", header=FALSE, stringsAsFactors=FALSE)

listA
length(listA)
length(listB)
的输出是什么?检查listA和listB的类别。sample的第一个参数需要是一个向量或整数,这里很可能是一个数据帧。错误是x中的项目数小于您要采集的样本数,当replace=false类为字符时,不允许这样做。是列表长度为1。一定是这样。所以我应该把它们转换成向量?如果我将它们转换为整数,我将如何检查重叠,整数不代表它们的行号而不是字符串本身吗?@user964689在as.character调用之后,您能运行dput(listA)和dput(listB)并将这些结果发布到您的问题中吗?
listA <- read.csv(file="file1.txt", header=FALSE, stringsAsFactors=FALSE)
listB <- read.csv(file="file2.txt", header=FALSE, stringsAsFactors=FALSE)
listA<-listA[,1]
listB<-listB[,1]