“P_emaildomain”, “R_emaildomain”, “card1”, “card2”, “card3”, “card5”, “addr1”, “addr2”,在R语言中画这几个变量的条形图,纵坐标是count,文件名是df_clean
时间: 2024-09-30 10:13:08 浏览: 32
Laravel开发-laravel-validate-email-domain
在R语言中,如果你有一个名为`df_clean`的数据框,并且其中包含了上述几个变量`P_emaildomain`, `R_emaildomain`, `card1`, `card2`, `card3`, `card5`, `addr1`, 和 `addr2`,你可以使用`ggplot2`库来创建条形图。这里是一个基本的步骤,假设数据已经被整理好,每个变量都是一维的类别向量:
首先,确保你已经安装了`ggplot2`和`dplyr`(如果尚未安装),因为我们需要进行数据预处理:
```sh
install.packages("ggplot2")
install.packages("dplyr")
```
然后,可以按照以下代码片段来创建条形图并保存到指定目录:
```R
library(ggplot2)
library(dplyr) # 如果尚未加载
# 假设df_clean是你的数据框,我们先进行一些预处理
# 检查数据是否满足条件,例如,是否有足够的条目来显示前40个最常见值
vars_to_plot <- c("P_emaildomain", "R_emaildomain", "card1", "card2", "card3", "card5", "addr1", "addr2")
for (var in vars_to_plot) {
if (!all(colSums(is.na(df_clean[[var]])) == 0)) { # 判断该变量是否存在NA
df_counts <- df_clean %>%
filter(!is.na(!!var)) %>%
count(!!var) %>%
slice_head(40) # 取前40个最常见的值
if (length(df_counts) > 0) {
# 创建条形图
plot <- ggplot(df_counts, aes(x = !!var, y = n)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(
x = var,
y = "Count",
title = paste0("Top Counts for ", var)
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) +
ggtitle(paste0("Counts of ", var))
# 保存图
ggsave(paste0("df_clean/", var, ".png"), plot, width = 6, height = 4)
} else {
message(paste(var, "has no data to display"))
}
} else {
message(paste(var, "contains all NA values and won't be plotted"))
}
}
```
这段代码会依次针对每个变量创建条形图,并且仅展示那些没有全部缺失值的变量。如果有任何变量不符合要求,它会给出相应的消息。
阅读全文