2016-07-29 4 views
0

나는 특별한 방법으로 음모를 꾸미기를 원하는 많은 양의 데이터가 있습니다. 그러나 R에서이 작업을 수행하는 방법을 모르겠습니다. 입력이 여러 열을 포함하는 csv 파일입니다. 음모를 꾸미고 싶은 항목은 A와 D입니다. A에는 문자와 숫자가 있습니다. A 열에있는 usedd 텍스트는 여러 번있을 수 있습니다.y 축의 개체와 x 축의 숫자를 표시하는 플롯을 만드는 방법

I :

enter image description here

나는이 음모하는 방법을 실제로 아무 생각이 :하지만 내가 다음을 입증해야한다 플롯을 얻으려면 결국 enter image description here

를 중요하지 않습니다 시도 : plot(data1$COLUMND,data1$COLUMNA,xlab = "COLUMND", ylab = "COLUMNA");하지만 결과는 열 A의 텍스트가 숫자로 바뀌 었습니다. 이 경우 축은 0-3에서 레이블을 가져옵니다. 레이블 명령으로 lable을 변경하려고했습니다. 그러나 이것은 lables가 aceding 행에 있었다는 문제로 이어진다. 그러나 열의 데이터는 아닙니다 (위의 예에서 볼 수 있지만 실제 데이터에는 없습니다). 따라서 R은 0을 A 열의 해당 텍스트로 대체해야합니다. 이 경우 나는 Quick-R guide 에 나와있는 방법을 사용했으나 원하는대로 작동하지 않고 항목을 null로 바꿨습니다.

답변

0

두 단계를 수행해야합니다.

1) 벡터 목록을 만드십시오. 모든 벡터는 A 열의 고유 한 요소 뒤에 오는 이름이며 열 D에서 해당 값을 포함합니다.

2) stripchart() 함수를이 목록과 함께 사용하십시오.

내 코드 방식 :

## your data 
data <- data.frame(A = c("AAA", "AAB", "AAC", "AAA", "AAE", "AAC"), 
        B = rep(12.3), 
        C = rep(20160729), 
        D = c(100,80,10,0,5,20)) 

## empty list to fill in the following loop 
list <- list() 
## get the values in column D for every unique value in column A 
## an add it to the list 
for (i in unique(data$A)) list[[i]] <- data$D[data$A == i] 

## plot the list 
stripchart(list, 
      xlab = "Column D", ylab = "Column A", 
      pch = 16, col = "red") 

결과 :

Stripchart

0

당신이 axis 기능을 사용하여 시도 적이 있습니까?

먼저 "AAD"가 제공 한 샘플 데이터에 없습니다. 우리는 열 A의 값에 대한 R 말할 필요하고 우리가 어떻게 그들을 주문하려면 :

data1 <- data.frame(A=c('AAA', 'AAB', 'AAC', 'AAA', 'AAE', 'AAC'), 
    D=c(100, 80, 10, 0, 5, 20)) 
data1$A <- factor(data1$A, levels=paste0('AA',LETTERS[1:5])) 

이제 우리는 플롯 할 수 있습니다. 우리는 R에게 Y 축을 지금 빼도록 지시합니다 ( yaxt 인수 사용). 나중에 수동으로 추가 할 것입니다.

par(mar=c(6,6,4,2)) # Set margins for plot 
plot(data1$D, data1$A, xlab = "Column D", ylab = "", yaxt="n", las=1) 

마지막으로 요인 레벨 (즉, 숫자) 대신 실제 값을 사용하여 Y 축 레이블을 추가합니다.

axis(2, at=1:length(levels(data1$A)), labels=levels(data1$A), las=2) 
mtext("Column A", side=2, line=1, las=2, at=3.2) 

Output