2016-07-04 5 views
0

질문을 처음 제출 한 것이므로 형식이 최적이 아닌 경우 사전에 사과드립니다.R의 데이터 프레임에서 데이터 행을 선택하는 방법은 무엇입니까?

저는 2 열로 약 6,000 개의 데이터 행을 가진 데이터 프레임을 가지고 있으며, 개별 행 (및 여러 행을 함께) 바 plot로 가져올 수 있기를 원합니다.

gene  log2 
1 SMa0002 0.457418 
2 SMa0005 1.116950 
3 SMa0007 0.686749 
4 SMa0009 0.169450 
5 SMa0011 0.393365 
6 SMa0013 0.601940 

그래서 내가 할 수 있기를 원하는 것이 무엇 x 축이 유전자의 숫자입니다 barplot을 가지고 있습니다 :

나는 dataframe로 내 파일을 읽고, 여기 아주 작은 부분 집합이다 (SMaXXX, SMaXXX, SMaXXX 등)이고 y 축은 log2 열입니다. 값 (+) 만 표시되지만 (-) 값도 있습니다. ggplot2에서 barplot 또는 geom_bar를 사용하는지 또는 다른 플로터를 사용하는지에 대한 기본 설정이 없습니다.

나는 데이터 프레임을 그리는 법을 알고 있습니다.

ggplot(df, aes(x = gene, y = log2)) + geom_bar(stat = "identity") 

내가 '일치'를 사용하여 장난 시도했다하지만 난 그 일을하는 방법을 알아낼 수 없었다. 이상적으로 코드는 다재다능하여 다른 SMaXXXX 코드를 펀치하여 여러 가지 플롯을 생성 할 수 있습니다.

읽어 주셔서 감사합니다.

+1

데이터 매개 변수를 부분 집합으로 지정합니다. 예 :'ggplot (df [as.numeric (substr (df $ 유전자, 4, 7)) <10,], aes (x = 유전자, y = log2) + geom_bar stat = "identity")' – alistaire

+1

간단히 작도 중 부분 집합 df :'ggplot (df [df $ gene = "SMaXXX",], ...'. 모든 별개의 유전자를 통해 루프를 돌린다. : lapply (unique (df $ gene), function (x) gglot (df [df $ gene = x,] ...))' – Parfait

+0

. 그래도 첫 번째 라인은 작동하지 않습니다 : 'ggplot (df [df $ 유전자 = "SMa0002", "SMa0005"], aes (x = df $ 유전자, y = log2) + geom_bar (stat = "ID")' 이 오류와 함께 다시 나타납니다. 오류 : 예기치 않은 '='in "ggplot (df [df $ gene =" – mdelow

답변

-1

플로팅 할 때 data.frame을 부분 집합하는 방법이 필요합니다. 방법

df=data.frame(gene=c("SMa0002","SMa0005","SMa0006","SMa0007","SMa0011","SMa0013"), 
       "log2"=runif(6), stringsAsFactors=F) 
subset.genes=sample(unique(df$gene), 4, replace=F) 

커플 : 1 °)를 ggplot2

ggplot(df, aes(x = gene, y = log2)) + geom_bar(stat = "identity") + 
    scale_x_discrete(limits=subset.genes) 

2 ° 내부) 이전 :

의 당신이 벡터는 플롯하는 데 필요한 유전자의 subset.genes있어 가정하자
df2 <- subset(df, gene %in% subset.genes) 
ggplot(df2, aes(x = gene, y = log2)) + geom_bar(stat = "identity") 
+0

] 입력 해 주셔서 감사합니다. 하위 집합 기능 아이디어를 사용했지만 결국 약간 다릅니다. ("1021manhattannostart.csv", 헤더 = T)' ' 'keep <- c ("SMc03879", "SMc03878", "SMc00296", "SMc02770", "SMb21010" "SMc00774") 서브셋 <- 서브 세트 ')) + geom_bar (STAT = "동일성"(%의 보존 기간 DF 유전자 %)' 'ggplot은 (일부, AES는 (X = 유전자, Y는 LOG2를 =) – mdelow

관련 문제