子集在R中不起作用

时间:2016-03-12 04:26:10

标签: r subset

我刚刚开始使用R进行一些基本分析。我试图使用subset从我的某个txt文件中提取一些数据。 我的数据文件的头部看起来像这样。

head(gps2)
         logFC        Pval    Gene
1 -0,155887003 0,872819236   Cidec
2 -2,853534804 0,158917555  Hsd3b5
3  1,031753975 0,120636931 Cyp2a22
4  0,323919709 0,292010361  Osbpl3
5 -2,842982917 0,039520301  Elovl3
6 -2,223250518  6,1759E-06 Sult5a1

我正试图通过Pval < 0.05logFC < -0.5获取子集。 我按如下方式编写了命令:

genelist=read.table('data.txt',header=T,stringsAsFactors = F)
genelist_down=subset(genelist,logFC< -0.5&Pval<0.05)
head(genelist_down)

当我运行代码时,它给出如下结果:

   logFC         Pval         Gene
1  -0,155887003  0,872819236          Cidec
8  -0,033531014  0,933301176          Stap1
20 -0,034793814  0,965019851        Snora61
24 -0,291441914   0,63454618             Ar
27 -0,118891524  0,810291984          Ddit4
28 -0,090525284    0,8405535  1810011O10Rik  

显然它不起作用...... 有人可以帮我弄清楚问题......

1 个答案:

答案 0 :(得分:4)

由于您的文件格式化,表示小数点,因此您的列都被读作字符,因此子集的结果不正确。将dec = ","添加到read.table()来电并再次尝试subset()

genelist <- read.table(
    "data.txt", 
    header = TRUE,
    stringsAsFactors = FALSE, 
    dec = ","
)

subset(genelist, logFC < -0.5 & Pval < 0.05)
#       logFC        Pval    Gene
# 5 -2.842983 3.95203e-02  Elovl3
# 6 -2.223251 6.17590e-06 Sult5a1