有100个考生,分别考上:中山大學、廣州大學、韶關學院、廣州南方學院和深圳大學,各类别的频数为18,19,20,21,22。·请按照从大到小的顺序绘制五個學校的柱状图。 请绘制五個學校的饼图并添加百分比标签的r语言代码
时间: 2024-03-18 08:41:48 浏览: 12
以下是R语言代码实现:
```R
# 定义数据
data <- c(18, 19, 20, 21, 22)
# 定义标签
labels <- c("中山大學", "廣州大學", "韶關學院", "廣州南方學院", "深圳大學")
# 绘制柱状图
barplot(data, names.arg = labels, horiz = TRUE, las = 1)
# 绘制饼图
pie(data, labels = paste(labels, round(data/sum(data)*100, 1), "%"), main = "各大學考生分佈")
```
运行上述代码即可得到所需的柱状图和饼图。
相关问题
列联表转化为带有类别频数的数据框R代码
假设已有一个名为mytable的列联表,其中行为变量A,列为变量B,频数为counts。可以使用以下代码将其转化为带有类别频数的数据框:
```R
library(tidyr)
# 将列联表转化为数据框
df <- as.data.frame(mytable)
# 将数据框从宽格式转化为长格式
df_long <- gather(df, key = "B", value = "counts", -A)
# 计算每个A类别下B类别的频数
df_freq <- df_long %>%
group_by(A, B) %>%
summarise(freq = sum(counts))
# 将频数添加回原数据框
df_result <- df %>%
left_join(df_freq, by = c("A", "B"))
```
其中,第一个步骤将列联表转化为数据框;第二个步骤使用`tidyr`包中的`gather()`函数将数据框从宽格式转化为长格式;第三个步骤使用`dplyr`包中的`group_by()`和`summarise()`函数计算每个A类别下B类别的频数;最后一个步骤将频数添加回原数据框。
三维列联表转化为带有类别频数的数据框R代码
假设现有一个三维列联表,其中变量A有a个类别,变量B有b个类别,变量C有c个类别,频数为counts,可以使用以下代码将其转化为带有类别频数的数据框:
```R
library(tidyr)
# 生成一个示例数据框
set.seed(123)
df <- data.frame(A = sample(letters[1:3], 50, replace = TRUE),
B = sample(letters[4:7], 50, replace = TRUE),
C = sample(letters[8:11], 50, replace = TRUE),
counts = sample(1:100, 50, replace = TRUE))
# 将三维列联表转化为数据框
df_long <- df %>%
pivot_longer(cols = c(B, C), names_to = "variable", values_to = "category") %>%
pivot_wider(names_from = "variable", values_from = "category")
# 计算每个ABC组合下的频数
df_freq <- df_long %>%
group_by(A, B, C) %>%
summarise(freq = sum(counts))
# 将频数添加回原数据框
df_result <- df %>%
left_join(df_freq, by = c("A", "B", "C"))
```
其中,第一个步骤使用`tidyr`包中的`pivot_longer()`函数将列联表中的B和C变量转化为两列,分别列出类别,得到一个长格式的数据框;第二个步骤使用`pivot_wider()`函数将数据框转化为三维列联表的形式;第三个步骤使用`dplyr`包中的`group_by()`和`summarise()`函数计算每个ABC组合下的频数;最后一个步骤将频数添加回原数据框。