2015-05-15 2 views
2

У меня есть матрица расстояний d, которую я хотел бы отформатировать как массив в Rmarkdown.Как отформатировать матрицу расстояний как массив в Rmarkdown?

```{r,echo=FALSE} 
x <- c(1,3,1,4,5) 
y <- c(5,4,3,5,1) 
d <- dist(cbind(x,y)) 
``` 

Так что d выглядит примерно так в документе Rmarkdown:

$$\mathbf{d} = \left[\begin{array} 
{rrrrr} 
~ & 1 & 2 & 3 & 4 \\ 
2 & 2.236 & ~ & ~ & ~ \\ 
3 & 2.000 & 2.236 & ~ & ~ \\ 
4 & 3.000 & 1.414 & 3.606 & ~ \\ 
5 & 5.657 & 3.606 & 4.472 & 4.123 
\end{array}\right] 
$$ 

Любые советы, чтобы сделать это без жесткого кодирования?

EDIT: фиксированная опечатка в массиве TeX-кода.

+0

Вы должны иметь возможность поместить '' '' '' '' {r, echo = TRUE} 'прямо в ваш массив TeX после' {rrr} ', а затем пропустить через' d' и 'cat' значения с соответствующими значениями для 'sep' и/или' collapse'. –

ответ

0

Если вы хотите создать уценки таблицу вместо LaTeX (а затем преобразовать, что в LaTeX/PDF/DOCX/что угодно), то было бы довольно просто, чтобы добавить поддержку для dist класса в pander пакете. Быстрый пример на этой идее:

> m <- as.matrix(d) 
> m[upper.tri(m)] <- NA 
> pander(m, split.table = Inf, digits = 4, missing = '', keep.trailing.zeros = TRUE) 

----------------------------- 
    1  2  3  4  5 
----- ----- ----- ----- ----- 
0.000       

2.236 0.000     

2.000 2.236 0.000    

3.000 1.414 3.606 0.000  

5.657 3.606 4.472 4.123 0.000 
----------------------------- 

Пожалуйста, создайте запрос на билет/тянущий на https://github.com/Rapporter/pander, если вы хотите, чтобы это было сделано как простой pander(d) вызова.

Смежные вопросы