2013-07-18 3 views
0

여기에 몇 가지 비슷한 질문이 있지만 내 것과 똑같은 것은 없습니다. 또는 그들이 똑같 았으면 나는 그것을 인식하지 못했습니다. R 프로그래밍 (다른 언어로 프로그래밍되었지만 R이 아닙니다!)데이터 세트를 R의 두 데이터 세트로 나눕니다. (반짝이를 통해 채널 된 ggplot2의 경우)

나는 csv 파일에서 입력 데이터 세트를 가지고 있는데, read.csv로 변환합니다. 데이터 세트에는 두 개의 그룹이있을 수도 있고 아닐 수도 있습니다. 나는 다음과 같이 내가 그룹을 분할 할 수 발견 :

datalist <- split(mydata, mydata$group) 

을하지만 내가 ggplot2 좋은 재생되지 않습니다 돌아가 목록 (나는이 목록 변수를 플롯 할 수없는 오류가 발생 - 목록 변수하지만, 만약 내가 콘솔에 출력하고 분할 된 데이터 하위 집합을 보여줍니다.). 알았어 괜찮아. 그때

data = as.data.frame(datalist[1]) 

을하고 ggplot2에 그에게 먹이를하지만, as.data.frame 내 열 이름을 엉망으로하고, 그래서 내가 플롯 할 변수의 이름을 잃게됩니다. 힘들어!

필자가 원하는 것은 gigplot2가 유효한 데이터 세트로 인식 할 수있는 두 개의 별도 변수 (데이터 프레임, 필자가 받아들이겠습니까?)로 read.csv에서 읽은대로 입력 데이터를 분할하는 것입니다. 실제로, 나는 같은 음모에 히스토그램으로 그들을 덧대 고 싶습니다.

이 작업을 수행하는 쉬운 방법이 있어야하지만, 나는 그것을 얻지 않습니까? 조언이나 안내문을 환영합니다.

+0

datalist [[index]]를 수행하여 개별 데이터 프레임을 추출 할 수 있습니다. 이중 괄호 – Alex

+0

에 오류가 발생합니다. (list) 객체는 'double'- odd로 입력하도록 강제 될 수 없습니다. – passiflora

+0

같은 플롯에서 사용하려면 하나의 데이터로 유지하고 싶을 것입니다. 틀. 우리는 여러분의 데이터가 어떻게 보이는지 보여 주면 ('dput'을 사용하여 데이터를 게시하는 것이 가장 좋습니다) 원하는 그림을 설명 할 수 있습니다.설명을 위해서 – Gregor

답변

2

그냥 다음 쉬울 수 있습니다 집합을 사용하여 (적어도 상호 작용 사용.) split(mydata, mydata$group)의 결과는 listdata.frame의 s입니다

p <- qplot(value,  # assuming there is a column named "value" 
      data = subset(mydata, group==mydata$group[1]), 
      colour = "cyan") 
1

하나의 인덱스 값을합니다. [[[ 표기법에 차이가 있습니다. [은 목록에서 부분 집합이며 [[은 목록에서 추출됩니다. 따라서 datalist[1]은 첫 번째로 구성된 길이 1의 목록입니다. data.frame. datalist[[1]]은 첫 번째 위치에있는 data.frame입니다. ggplot (및 qplot)은 data.frame을 예상하므로 주석에 언급 된 @Alex로 두 번째 (이중 대괄호) 버전이 필요합니다. 나는 당신이 본 오류를 왜 가지고 있고 완전한 예없이 진단 할 수 없는지 모르겠습니다. 다른 데이터 세트 (mtcars)를 사용하면 표시되지 않습니다.

enter image description here

enter image description here

qplot(wt, data=datalist[[1]], colour="cyan") 

datalist <- split(mtcars, mtcars$am) 

ggplot(datalist[[1]], aes(x=wt, y=mpg)) + geom_point() 

(난 당신이 colour=I("cyan")를 원 같은데요,하지만 그 관련이없는 문제입니다.)

부분 집합으로의 차이를/추출 사업자가 될 수 있습니다 여기에 표시 :

> str(datalist) 
List of 2 
$ 0:'data.frame':  19 obs. of 11 variables: 
    ..$ mpg : num [1:19] 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 ... 
    ..$ cyl : num [1:19] 6 8 6 8 4 4 6 6 8 8 ... 
    ..$ disp: num [1:19] 258 360 225 360 147 ... 
    ..$ hp : num [1:19] 110 175 105 245 62 95 123 123 180 180 ... 
    ..$ drat: num [1:19] 3.08 3.15 2.76 3.21 3.69 3.92 3.92 3.92 3.07 3.07 ... 
    ..$ wt : num [1:19] 3.21 3.44 3.46 3.57 3.19 ... 
    ..$ qsec: num [1:19] 19.4 17 20.2 15.8 20 ... 
    ..$ vs : num [1:19] 1 0 1 0 1 1 1 1 0 0 ... 
    ..$ am : num [1:19] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ gear: num [1:19] 3 3 3 3 4 4 4 4 3 3 ... 
    ..$ carb: num [1:19] 1 2 1 4 2 2 4 4 3 3 ... 
$ 1:'data.frame':  13 obs. of 11 variables: 
    ..$ mpg : num [1:13] 21 21 22.8 32.4 30.4 33.9 27.3 26 30.4 15.8 ... 
    ..$ cyl : num [1:13] 6 6 4 4 4 4 4 4 4 8 ... 
    ..$ disp: num [1:13] 160 160 108 78.7 75.7 ... 
    ..$ hp : num [1:13] 110 110 93 66 52 65 66 91 113 264 ... 
    ..$ drat: num [1:13] 3.9 3.9 3.85 4.08 4.93 4.22 4.08 4.43 3.77 4.22 ... 
    ..$ wt : num [1:13] 2.62 2.88 2.32 2.2 1.61 ... 
    ..$ qsec: num [1:13] 16.5 17 18.6 19.5 18.5 ... 
    ..$ vs : num [1:13] 0 0 1 1 1 1 1 0 1 0 ... 
    ..$ am : num [1:13] 1 1 1 1 1 1 1 1 1 1 ... 
    ..$ gear: num [1:13] 4 4 4 4 4 4 4 5 5 5 ... 
    ..$ carb: num [1:13] 4 4 1 1 2 1 1 2 2 4 ... 
> str(datalist[1]) 
List of 1 
$ 0:'data.frame':  19 obs. of 11 variables: 
    ..$ mpg : num [1:19] 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 ... 
    ..$ cyl : num [1:19] 6 8 6 8 4 4 6 6 8 8 ... 
    ..$ disp: num [1:19] 258 360 225 360 147 ... 
    ..$ hp : num [1:19] 110 175 105 245 62 95 123 123 180 180 ... 
    ..$ drat: num [1:19] 3.08 3.15 2.76 3.21 3.69 3.92 3.92 3.92 3.07 3.07 ... 
    ..$ wt : num [1:19] 3.21 3.44 3.46 3.57 3.19 ... 
    ..$ qsec: num [1:19] 19.4 17 20.2 15.8 20 ... 
    ..$ vs : num [1:19] 1 0 1 0 1 1 1 1 0 0 ... 
    ..$ am : num [1:19] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ gear: num [1:19] 3 3 3 3 4 4 4 4 3 3 ... 
    ..$ carb: num [1:19] 1 2 1 4 2 2 4 4 3 3 ... 
> str(datalist[[1]]) 
'data.frame': 19 obs. of 11 variables: 
$ mpg : num 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 ... 
$ cyl : num 6 8 6 8 4 4 6 6 8 8 ... 
$ disp: num 258 360 225 360 147 ... 
$ hp : num 110 175 105 245 62 95 123 123 180 180 ... 
$ drat: num 3.08 3.15 2.76 3.21 3.69 3.92 3.92 3.92 3.07 3.07 ... 
$ wt : num 3.21 3.44 3.46 3.57 3.19 ... 
$ qsec: num 19.4 17 20.2 15.8 20 ... 
$ vs : num 1 0 1 0 1 1 1 1 0 0 ... 
$ am : num 0 0 0 0 0 0 0 0 0 0 ... 
$ gear: num 3 3 3 3 4 4 4 4 3 3 ... 
$ carb: num 1 2 1 4 2 2 4 4 3 3 ... 
+0

행크스, Brian. 어제 얻은 오류는 또 다른 근원이었습니다. – passiflora

관련 문제