R语言数据框(datafram)数据的简单分析

代码完成的功能:

  • 创建数据集(数据框),
  • 写入到文件中,
  • 显示数据,
  • 分组计算平均年龄,

在Rstudio中,创建R markdown或R notebook文件运行。以下是添加了注释的完整R代码,解释了每个步骤的功能和目的:

# R Notebook文档设置
title: "R Notebook"
output: html_notebook

# 创建示例数据集
age = c(22,25,45,33,55)       # 创建年龄向量
name = c("Ken","Jhon","Daliu","Lisa","Jack")  # 创建姓名向量
gender = c("M","F","F","M","F")  # 创建性别向量(M=男,F=女)
area = c("City","Rural","City","Rural","Rural")  # 创建区域向量
df <- data.frame(area,name,gender,age)  # 组合向量为数据框

# 将数据保存为CSV文件
write.table(df,file = "~/python/name_age.csv",  # 指定保存路径
            row.names = FALSE,     # 不保存行名
            col.names = TRUE,      # 保存列名
            quote = FALSE)         # 不使用引号包裹文本

# 显示数据框内容并绘制年龄趋势图
df  # 打印数据框内容
plot(df[["age"]],ylab = "age",type = "l")  # 绘制年龄折线图
print("file -name_age.csv- saved")  # 提示文件已保存

# 读取CSV文件并查看数据结构
library(readr)  # 加载readr包用于高效读取数据
name_age <- read_csv("~/python/name_age.csv")  # 读取CSV文件
View(name_age)  # 在RStudio中查看数据
typeof(name_age)  # 查看数据类型

# 生成性别与区域的交叉表
table(area,gender)  # 统计不同区域和性别的人数分布

# 方法1: 使用基础函数tapply计算不同性别平均年龄
avg_age_by_gender <- tapply(df$age, df$gender, mean)
print(avg_age_by_gender)

# 方法2: 使用dplyr包计算不同性别平均年龄
library(dplyr)  # 加载dplyr包
avg_age_by_gender <- df %>%
  group_by(gender) %>%  # 按性别分组
  summarise(mean_age = mean(age, na.rm = TRUE))  # 计算平均年龄并处理缺失值
print(avg_age_by_gender)

# 方法3: 使用data.table包计算不同性别平均年龄(适合大数据集)
library(data.table)  # 加载data.table包
dt <- as.data.table(df)  # 将数据框转换为data.table格式
avg_age_by_gender <- dt[, .(mean_age = mean(age, na.rm = TRUE)), by = gender]  # 分组计算
print(avg_age_by_gender)

代码功能说明

  1. 数据创建与保存
  • 创建了包含姓名、年龄、性别和区域的示例数据集
  • 将数据保存为CSV文件到指定路径
  • 绘制了年龄趋势折线图
  1. 数据读取与分析
  • 使用readr包读取CSV文件
  • 查看了数据的结构和类型
  • 生成了性别与区域的交叉表
  1. 分组统计
  • tapply方法:使用R基础函数进行分组计算
  • dplyr方法:使用管道操作符进行流式数据处理
  • data.table方法:针对大数据集的高效处理方案

所有统计方法都考虑了缺失值处理(通过na.rm=TRUE参数),可以根据数据规模和个人偏好选择合适的方法。