我正在尝试使用R中生成的样本ID的随机列表作为更大数据帧子集的基础。我意识到我可以直接随机分配,但我想知道下次我需要使用特定的样本名称进行子集。
我有数据(mydata),如下所示:
Species.Obj.ID Sample Sample.Name
1 23 George
2 90 Adilade
3 34 Frank
4 23 Steve
我生成了随机数
rand<-sample(1:4, 2, replace=F)
然后尝试使用此处的示例(How to filter a table's row based on an external list?)对数据进行子集化。
subset(mydata,subset= Species.Obj.ID %in% rand)
但我只是回来了完整的原始数据(mydata)。
我想从rand中的随机数中获取数据表中的行。
我非常感谢有关如何纠正此问题的任何建议。谢谢!
答案 0 :(得分:0)
这种方法比使用subset
> yourData <- data.frame(Species.Obj.ID = 1:4,
Sample = c(23,90,34,23),
Sample.Name = c("George", "Adilade", "Frank", "Steve"))
> rand <- sample(1:4, 2, replace = FALSE)
> rand
[1] 2 3 # the random numbers are 2 and 3
> yourData[rand, ] # the rows shown are rows 2 and 3
Species.Obj.ID Sample Sample.Name
2 2 90 Adilade
3 3 34 Frank
您甚至可以使用
缩短所有内容yourData[sample(1:4, 2, replace = FALSE), ]
这将返回2行原始数据的随机样本。