2016-11-19 53 views
-1

我想根据物种RPKM值和dnds值对我的数据集进行子集化,因此对于每个物种,RPKM值的范围可以从0到170, dnds值可以在0.10至0.40的范围内。我已经使用了如下所示的子集函数。起初我尝试在一个子集函数中添加这些维度,但它不起作用。然后我将其分解(如下所示)。它似乎适用于RPKM,但我仍然得到大于0.40的dNdS值。 有谁能告诉我我在做什么错在这里。R中的子集函数没有按照我想要的方式进行子集化

这是我的代码:

subset_data <- subset(mammals, mammals$RPKM <= 170) 

subset_data2 <- subset(subset_data,mammals$RPKM >= 0) 

subset_data3 <- subset(subset_data2,mammals$dNdS >= 0.10) 

subset_data4 <- subset(subset_data3,mammals$dNdS <= 0.40) 
+0

是的,我已经检查这一点。它的数字。你在暗示什么? –

+0

我建议,如果它不是数字,它可能是一个问题 – akrun

+1

尝试在一行没有“子集”,例如,'subset_data < - 哺乳动物[哺乳动物$ RPKM <= 170&哺乳动物$ RPKM> = 0&哺乳动物$ dNdS> = 0.10和哺乳动物$ dNdS <= 0.40,]' – ulfelder

回答

0

1)运行

str(mammals) 

例如

> str(iris) 
'data.frame': 150 obs. of 5 variables: 
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... 
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... 
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... 
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... 
$ Species  : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ... 

检查变量RPKM & dNdS类型。它们应该是“num”或“int”。

2)使用2碱::逻辑

例如

> subset(iris, Sepal.Length>6&Sepal.Width<3&Petal.Length<5&Petal.Width<1.4) 
    Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
59   6.6   2.9   4.6   1.3 versicolor 
72   6.1   2.8   4.0   1.3 versicolor 
74   6.1   2.8   4.7   1.2 versicolor 
75   6.4   2.9   4.3   1.3 versicolor 
88   6.3   2.3   4.4   1.3 versicolor 
98   6.2   2.9   4.3   1.3 versicolor 

在你的情况

subset(mammals, mammals$RPKM <= 170 & mammals$RPKM >= 0 & mammals$dNdS >= 0.1 & mammals$dNdS <= 0dNdS.4)