【发布时间】:2020-10-26 17:14:46
【问题描述】:
我有一个包含以下列表列水果的数据框:
水果
苹果、梨、香蕉
梨
香蕉、苹果
苹果,梨
西瓜、苹果、梨、香蕉
梨、西瓜
我想在 R Markdown 中创建一个交叉矩阵 - 仅针对这一列,以便输出显示哪些水果紧密列出在一起。 x 和 y 轴都基于这一列。
【问题讨论】:
标签: r r-markdown
我有一个包含以下列表列水果的数据框:
苹果、梨、香蕉
梨
香蕉、苹果
苹果,梨
西瓜、苹果、梨、香蕉
梨、西瓜
我想在 R Markdown 中创建一个交叉矩阵 - 仅针对这一列,以便输出显示哪些水果紧密列出在一起。 x 和 y 轴都基于这一列。
【问题讨论】:
标签: r r-markdown
我认为你想要得到的是协方差矩阵,即:
df %>%
mutate(.id=row_number()) %>%
unnest_longer(c(Fruits)) %>%
mutate(value = 1) %>%
pivot_wider(id_cols=.id, names_from=Fruits) %>%
select(-.id) -> result
# replacing NA s with 0 s
result[is.na(result)] <- 0
result
# A tibble: 6 x 4
Apple Pear Banana Watermelon
<dbl> <dbl> <dbl> <dbl>
1 1 1 1 0
2 0 1 0 0
3 1 0 1 0
4 1 1 0 0
5 1 1 1 1
6 0 1 0 1
result %>% cov
Apple Pear Banana Watermelon
Apple 0.26666667 -0.06666667 0.2 -0.06666667
Pear -0.06666667 0.16666667 -0.1 0.06666667
Banana 0.20000000 -0.10000000 0.3 0.00000000
Watermelon -0.06666667 0.06666667 0.0 0.26666667
df <- tibble(Fruits=list(list("Apple", "Pear", "Banana"),
list("Pear"),
list("Banana", "Apple"),
list("Apple", "Pear"),
list("Watermelon", "Apple", "Pear", "Banana"),
list("Pear", "Watermelon")))
【讨论】:
采用 Abdessabour Mtk 所说的并将其包装在带有 YAML 标头的 Rmarkdown 代码中。
---
output:
html_document
---
```{r}
library(tidyverse)
[R code goes here]
```
【讨论】: