2015-10-30 43 views
1

有人可以嘗試調試下面的腳本嗎? ggplot沒有找到我的x和y值。哪裏不對?兩列之間的繪圖相關

數據:

data <- read.table(file="./MatureMiRNA_1M_2M_Trim18.csv", sep=",", header=T, check.names=F, row.names=1) 
    head(data) 
         1M 2M 
    hsa-let-7a-2-3p 0 0 
    hsa-let-7a-3p  0 12 
    hsa-let-7a-5p 2770 1344 
    hsa-let-7b-3p  26 27 
    hsa-let-7b-5p 627 492 
    hsa-let-7c-3p  0 0 

腳本

keep <- rowSums(cpm(data)>3) >=2 
    data <- data[keep, ] 
    table(keep) 
    keep 

    FALSE TRUE 
    2381 200 

    data <- log(data,2) 
    head(data) 
         1M  2M 
    hsa-let-7a-5p 11.435670 10.392317 
    hsa-let-7b-3p 4.700440 4.754888 
    hsa-let-7b-5p 9.292322 8.942515 
    hsa-let-7c-5p 5.906891 4.754888 
    hsa-let-7d-3p 9.552669 7.882643 
    hsa-let-7d-5p 8.573647 7.851749 

    library(ggplot2) 
    ggplot(data, aes(x=1M,y=2M)) + geom_point() 
    Error: unexpected symbol in "ggplot(data, aes(x=1M" 

回答

1

R不允許以數字(See, for example, here)開始的變量名。但read.table命令中的check_names=F將阻止R檢查有效名稱。將check.names作爲默認值(TRUE),R將通過向變量名稱添加「X」使名稱合法。如果要將原始名稱作爲ggplot中的軸標籤,請使用labs更改軸標籤。

data <- read.table(text = " 1M  2M 
    hsa-let-7a-5p 11.435670 10.392317 
    hsa-let-7b-3p 4.700440 4.754888 
    hsa-let-7b-5p 9.292322 8.942515 
    hsa-let-7c-5p 5.906891 4.754888 
    hsa-let-7d-3p 9.552669 7.882643 
    hsa-let-7d-5p 8.573647 7.851749", 
    header = TRUE, 
    check.names = TRUE, 
    row.names = 1) 

names(data) 

library(ggplot2) 
ggplot(data, aes(X1M, X2M)) + 
    geom_point() + 
    labs(x = "1M", y = "2M")