2011-11-17 4 views
0

구조에 문제가 있습니다. 다음은 내가하는 일의 예입니다.왜 그래픽이 비어 있습니까?

x <- c(211.50, 200.50, 148.60, 144.20, 132.20, 159.80, 107.70, 91.40, 63.10, 62.10, 55.70, 74.60, 224.90, 208.001, 45.80, 133.50, 122.70, 161.70, 160.00, 136.80, 92.20, 91.20, 79.20, 109.90, 244.60, 212.20, 147.20, 129.30, 118.50, 165.80, 120.60, 97.90, 69.30, 65.50, 59.10, 81.90, 94.15, 114.20, 131.03, 133.89, 132.25, 153.51) 

y <- x 
Ref <- c(rep("ref1",36), rep("ref2",6)) 
ID <- c(rep("id1",6), rep("id2",6),rep("id3",6),rep("id4",6),rep("id5",6),rep("id6",6),rep("id7",6)) 

data.split <- data.frame(Ref,ID,x,y) 
l.ref <- ddply(data.split, .(Ref), "nrow") 
vec1 <- c(rep(1,l.ref$nrow[1])) 
for (i in 2:length(l.ref$Ref)) { 
    vec2 <- c(rep(i,l.ref$nrow[i])) 
    vec3 <- append(vec1,vec2, after =length(vec1)) 
    vec1 <- vec3 
} 
vec_ref <- vec3 

l.id <- ddply(data.split, .(ID), "nrow") 
vec1 <- c(rep(1,l.id$nrow[1])) 
for (i in 2:length(l.id$ID)) { 
vec2 <- c(rep(i,l.id$nrow[i])) 
vec3 <- append(vec1,vec2, after =length(vec1)) 
vec1 <- vec3 
} 
vec_id <- vec3 
df <- structure(list(Ref = structure(vec_ref, .Label = l.ref$Ref, class = "factor"), 
Id = structure(vec_id, .Label = l.id$ID, class = "factor"), 
x = data.split$x, y = data.split$y), 
.Names = c("Ref", "Id", "x", "y"), 
row.names = c(NA, -length(data.split$x)), class = "data.frame") 

ggplot(data = df, aes(x = x, y = y, colour = df$Ref)) + 
    geom_point(aes(shape = df$Id)) + scale_shape_manual(value=1:length(l.id$ID)) 

경고 메시지 : 1 [<-.factor IN (*tmp*, is.na (값)의 값 = "NA") 무효 요소 레벨이, NAS는 2 생성 : 누락 값을 포함 제거 42 행 (geom_point).

빈 그래픽이 있는데, 나는 무엇이 문제인지 이해하지 못합니까?

내가 뭘 잘못하고있어?

+2

"오류 : 개체 'l.ref'을 (를) 찾을 수 없습니다." – Spacedman

+0

예제에 l.ref 및 l.id 광고를 보내 주시겠습니까? –

+0

코드가 작동하지 않습니다. data.split가 생성되었지만 l.ref가 존재하지 않는 객체입니다. 또한 무엇을하고 싶은지, 왜 구조가 필요한지를 분명히해야합니다. 이 단계에서 코드가 상당히 불분명 해 보입니다. –

답변

5

데이터 프레임에서 요인이 엉망입니다. '구조'를 가진 모든 사업은 무엇입니까? 그것을 잃고 이것을 사용하십시오 :

df = data.frame(Ref = factor(vec_ref,labels=l.ref$Ref), 
     Id = factor(vec_id,labels=l.id$ID), 
     x=data.split$x,y=data.split$y) 

그리고 나서 ggplot이 작동합니다.

+0

예, 고맙습니다. – Tali

+1

작은 상자를 클릭하면 답변을 얻을 수 있습니다. :) – Spacedman

관련 문제