R语言学习笔记:R 语言中常见的数据类型及其应用场景

目录

一、基础数据类型

1. 数值型(Numeric)

注意事项:

2. 字符型(Character)

字符串处理常用函数:

3. 逻辑型(Logical)

逻辑运算符号:

4. 因子型(Factor)

因子处理技巧:

二、日期与时间类型

日期时间处理要点:

三、缺失值与特殊值

常见特殊值:

缺失值处理方法:

四、数据类型转换

类型转换注意事项:

五、数据类型检测

常用检测函数:


一、基础数据类型

1. 数值型(Numeric)

数值型是 R 语言中最基本的数据类型,用于存储数字,支持整数和浮点数。在 R 中,数值型默认以双精度浮点数形式存储。

# 整数和浮点数
x <- 123       # 整数
y <- 2.344     # 浮点数
z <- 5e3       # 科学计数法(5000)

# 检查数据类型
class(x)       # 输出 "numeric"
is.numeric(y)  # 输出 TRUE

注意事项

  • R 中没有专门的整数类型声明,默认所有数字都是浮点数
  • 如需显式声明整数,需在数字后加 L,如 123L

2. 字符型(Character)

字符型用于存储文本数据,需用单引号或双引号包裹。R 语言对单引号和双引号没有严格区分,但需注意引号的嵌套使用。

# 字符型示例
a <- '123'        # 字符串 "123"(非数字)
b <- "hello R"    # 包含空格的字符串
c <- "It's R!"    # 双引号可包含单引号
d <- 'He said "Hi"'  # 单引号可包含双引号

# 字符串拼接
paste("Hello", "World", sep = " ")  # 输出 "Hello World"

字符串处理常用函数

  • nchar():计算字符串长度
  • substr():提取子字符串
  • gsub():字符串替换
  • paste()/paste0():字符串拼接

3. 逻辑型(Logical)

逻辑型用于存储布尔值,仅支持TRUE(或简写T)和FALSE(或简写F)。逻辑值通常是比较和逻辑运算的结果。

# 逻辑值
is_valid <- TRUE
is_error <- F

# 逻辑运算结果
5 > 3          # 输出 TRUE
"apple" == "banana"  # 输出 FALSE

逻辑运算符号

  • &:逻辑与
  • |:逻辑或
  • !:逻辑非
  • &&/||:向量化逻辑运算

4. 因子型(Factor)

因子型用于存储分类数据,内部用整数表示不同类别。因子在统计建模和数据分析中非常有用,特别是在处理分类变量时。

# 创建因子
gender <- factor(c("Male", "Female", "Male"))
class(gender)  # 输出 "factor"

# 查看水平(类别)
levels(gender)  # 输出 "Female" "Male"

因子处理技巧

  • levels():查看或修改因子水平
  • nlevels():获取因子水平数量
  • droplevels():删除未使用的因子水平

二、日期与时间类型

R 语言提供了专门的日期和时间处理机制,主要包括DatePOSIXct/POSIXlt两种类型。

# 日期
today <- Sys.Date()  # 获取当前日期
date1 <- as.Date("2023-01-01")
date1 - today        # 计算日期间隔

# 日期时间
now <- Sys.time()    # 获取当前日期时间
time1 <- as.POSIXct("2023-01-01 12:00:00", tz = "UTC")

日期时间处理要点

  • 日期默认格式为 "YYYY-MM-DD"
  • 使用as.Date()as.POSIXct()进行类型转换
  • 日期时间计算支持加减运算
  • 时区问题需特别注意,避免数据混淆

三、缺失值与特殊值

R 语言使用特定的符号表示缺失值和特殊值,这些值在数据处理中需要特别处理。

x <- c(1, NA, 3)
is.na(x)        # 检测缺失值,输出 TRUE FALSE FALSE

y <- 0/0
is.nan(y)       # 输出 TRUE

常见特殊值

  • NA:表示缺失值
  • NaN:表示非数字(如 0/0 的结果)
  • Inf-Inf:表示正无穷和负无穷
  • NULL:表示空对象

缺失值处理方法

  • is.na():检测缺失值
  • na.omit():删除包含缺失值的观测
  • complete.cases():识别完整的观测
  • replace_na():替换缺失值(需加载 tidyr 包)

四、数据类型转换

R 语言提供了丰富的类型转换函数,帮助用户在不同数据类型之间进行转换。

# 数值型转字符型
num <- 123
as.character(num)  # 输出 "123"

# 字符型转数值型
char <- "3.14"
as.numeric(char)   # 输出 3.14

# 逻辑型转数值型
logical <- TRUE
as.numeric(logical)  # 输出 1(TRUE转为1,FALSE转为0)

类型转换注意事项

转换需确保数据的逻辑合理性;无法转换的值会返回NA;因子转换需注意水平与数值的对应关系

五、数据类型检测

在处理复杂数据时,准确检测数据类型至关重要。R 语言提供了多种检测函数。

x <- 123
is.numeric(x)  # TRUE
is.integer(x)  # FALSE(默认是numeric,不是integer)

y <- "hello"
is.character(y)  # TRUE
is.factor(y)     # FALSE

常用检测函数:

  • class():返回对象的类 
  • typeof():返回对象的底层数据类型
  •  is.*()系列函数:检测特定类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值