【R语言】字符类型转换

文章目录

当R读入数据框时,会先自动定义数据类型
根据需求对数据框中的某几列转换字符类型

有哪些数据类型

查看字符类型

c 复制代码
> class(data)
[1] "data.frame"
> class(data$HD)
[1] "character"

查看数据框中所有列:

c 复制代码
> str(data)
'data.frame':	127 obs. of  10 variables:
 $ HD: chr  "H" "H" "H" "H" ...
 $ pH: num  6.07 5.99 6.56 6.04 6.75 ...
 $ Ec: num  124 115 156 206 328 ...
 $ AK: num  237 210 257 296 409 ...
 $ AP: chr  "35.8" "18.8" "19.6" "38" ...
 $ TP: num  0.813 0.775 0.752 0.881 0.926 0.924 0.682 0.728 0.717 0.749 ...
 $ TN: num  1.58 1.6 1.57 1.63 1.7 ...
 $ AN: num  138 140 136 142 137 ...
 $ OC: num  17.5 18.3 17.3 18.3 17.2 ...
 $ OM: num  30.2 31.6 29.8 31.6 29.7 ...

字符串转换

单个字符串转换

c 复制代码
data$HD <- as.factor(data$HD)

多列字符串转换

使用 lapply 函数

可以使用 lapply 对除第一列外的所有列进行转换

c 复制代码
# 将除第一列以外的列转换为数值型
df[, -1] <- lapply(df[, -1], as.numeric)

str(df)  # 检查结果

使用 dplyr 包的 mutate_at 或 mutate(across(...))

dplyr 提供了简单的方法来指定要转换的列

使用 dplyr 包的 mutate_all 函数可以将整个数据框的列都转换为数值型,而 mutate_at 可以指定要转换的列。

c 复制代码
# 使用 mutate_all 将所有列转换为数值型:
df <- df %>% mutate_all(as.numeric)

# 使用 mutate_at 转换指定列:
df <- df %>% mutate_at(vars(col1, col3), as.numeric)
c 复制代码
# 使用 mutate_at 转换除第一列外的列
df <- df %>% mutate_at(vars(-col1), as.numeric)

# 使用 across (dplyr 1.0+ 版本)
df <- df %>% mutate(across(-col1, as.numeric))

str(df)  # 检查结果

使用 apply 函数

也可以使用 apply 将数据框的子集(即多列)转换为数值型。

c 复制代码
# 使用 apply 将除第一列以外的列转换为数值型
df[, -1] <- apply(df[, -1], 2, function(x) as.numeric(as.character(x)))

str(df)  # 检查结果

如果想转换多列,可以使用 apply 将数据框的子集(即多列)转换为数值型。

c 复制代码
df[c("col1", "col3")] <- apply(df[c("col1", "col3")], 2, as.numeric)
相关推荐
峥嵘life35 分钟前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
临床数据科学和人工智能兴趣组3 小时前
网络爬虫(Web Scraping)是一种用于自动提取网页内容的技术
r语言·r语言-4.2.1
mqiqe3 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
gugucoding3 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
Nebula_g4 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
for_ever_love__4 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
依然鸣5 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
byxdaz5 小时前
QT中服务使用
开发语言·qt
库玛西6 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
caimouse7 小时前
ReactOS 图形系统分析(19):颜色转换对象 — XLATEOBJ(xlateobj.c/h)
c语言·开发语言