2 행의 행렬이 있습니다. boxplot에 각 열을 넣고 싶지만 각각 다른 수의 항목이 있습니다.다른 길이의 벡터 박스 플롯
예를 들어 첫 번째 열에는 10 개의 항목이 있고 두 번째 열에는 7 개의 항목이 있습니다. 두 번째 열의 나머지 3 개는 0으로 지정됩니다.
비교를 위해이 두 가지를 나란히 표시하고 싶습니다.
R이 boxplot에 전체 열 1을, 첫 번째 항목에 열 2 만 알려주는 방법이 있습니까?
2 행의 행렬이 있습니다. boxplot에 각 열을 넣고 싶지만 각각 다른 수의 항목이 있습니다.다른 길이의 벡터 박스 플롯
예를 들어 첫 번째 열에는 10 개의 항목이 있고 두 번째 열에는 7 개의 항목이 있습니다. 두 번째 열의 나머지 3 개는 0으로 지정됩니다.
비교를 위해이 두 가지를 나란히 표시하고 싶습니다.
R이 boxplot에 전체 열 1을, 첫 번째 항목에 열 2 만 알려주는 방법이 있습니까?
당신이 할 수 단순히 인덱스는 행렬이 워드에 당신을 데려 갈거야 위의 예
## dummy version of your data
mat <- matrix(c(1:17, rep(0, 3)), ncol = 2)
## create object suitable for plotting with boxplot
## I.e. convert to melted or long format
df <- data.frame(values = mat[1:17],
vars = rep(c("Col1","Col2"), times = c(10,7)))
## draw the boxplot
boxplot(values ~ vars, data = df)
에 대해 원하는 값. 실제로 데이터 프레임이있는 경우 다음
df <- data.frame(values = c(mat[,1], mat[1:7, 2]),
vars = rep(c("Col1","Col2"), times = c(10,7)))
을 필요 나는 두 컬럼의 데이터 값이 2 열로 있다는 사실한다는 점에서 비교할 수 있다고 가정하는 것은 우리가 분할 할 수있는 범주 형 변수를 제안한다 값 (남성과 여성의 키와 같은 성별, 범주 적 가치).
결과 상자 그림은 컬럼의 수와 같이 할 수있는 비어있는 항목의 수를 들어
아래에 표시됩니다.
## Load data from CSV; first row contains column headers
dat <- read.csv('your-filename.csv', header = T)
## Set plot region (when set 'ylim' skip first row with headers)
plot(
1, 1,
xlim=c(1,ncol(dat)), ylim=range(dat[-1,], na.rm=T),
xaxt='n', xlab='', ylab=''
)
axis(1, labels=colnames(dat), at=1:ncol(dat))
for(i in 1:ncol(dat)) {
## Get i-th column
p <- dat[,i]
## Remove 0 values from column
p <- p[! p %in% 0]
## Instead of 0 you can use any values
## For example, you can remove 1, 2, 3
## p <- p[! p %in% c(1,2,3)]
## Draw boxplot
boxplot(p, add=T, at=i)
}
이 코드를로드 테이블 형태의 CSV 파일 열에서 0 값을 제거 (또는 어떤 다른 값을 제거 할 수 있습니다), 한 그래픽의 모든 컬럼에 대한 모든 상자 그림을 그립니다.
이렇게 생각하십시오.
감사합니다. 내가 올바르게 이해할 수 있도록, '매트'에서 '값'으로 모든 것을 벡터로 읽습니다. 그런 다음 'vars'변수를 두 개의 열로 만들고 'times'는 'vars'에 처음 10이 col1에 속하고 다음 7은 col2에 속한다는 것을 알려줍니다. 나는 그것을 올바르게 받았 느냐? – user1007742
아닙니다. 나는 단지'mat'에서 처음 17 개의 값을 읽었지 만, 여러분은 올바른 휴식을 취하고 있습니다. –
어떻게 이것을 2 대신 3 개의 벡터로 할 수 있습니까? – user1007742