广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言:实现因子与字符串的互转
  • 461
分享到

R语言:实现因子与字符串的互转

2024-04-02 19:04:59 461人浏览 独家记忆
摘要

在导入大批量数据时,如果没有显式地指定“stringsAsFactors = FALSE”,默认会将所有的字符串转换为因子,导致数据处理速度较慢。 示例数据如下: name,ma

在导入大批量数据时,如果没有显式地指定“stringsAsFactors = FALSE”,默认会将所有的字符串转换为因子,导致数据处理速度较慢。

示例数据如下:


name,math,english,sex,year
"yiifaa",65,68,"M",2018
"yiifee",95,98,"F",2018
"guagua",75,78,"M",2018
"MM",85,88,"F",2018

查看数据概要,发现默认将字符串转换为因子,并进行了分组计数(这也是处理速度较慢的原因之一)

概要如下:


  name        math         english     sex        year     
 guagua:1   Min.   :65.0   Min.   :68.0   F:2   Min.   :2018  
 MM    :1   1st Qu.:72.5   1st Qu.:75.5   M:2   1st Qu.:2018  
 yiifaa:1   Median :80.0   Median :83.0         Median :2018  
 yiifee:1   Mean   :80.0   Mean   :83.0         Mean   :2018  
            3rd Qu.:87.5   3rd Qu.:90.5         3rd Qu.:2018  
            Max.   :95.0   Max.   :98.0         Max.   :2018  

但这样的分组计数并没有意义,所以需要利用“as.character”转换为字符,如下:


#! /usr/bin/env RScript
setwd("D:/Workspace/R-Works/R-Stat")
scores <- read.table("Score.txt", header = TRUE, sep = ",", quote="\"", encoding = "UTF-8", stringsAsFactors = TRUE)
# 将因子转换为字符
scores$name <- as.character(scores$name)
# 多转一个进行测试
scores$sex <- as.character(scores$sex)

再次查看概要,如下:


name                math         english         sex                 year     
 Length:4           Min.   :65.0   Min.   :68.0   Length:4           Min.   :2018  
 Class :character   1st Qu.:72.5   1st Qu.:75.5   Class :character   1st Qu.:2018  
 Mode  :character   Median :80.0   Median :83.0   Mode  :character   Median :2018  
                    Mean   :80.0   Mean   :83.0                      Mean   :2018  
                    3rd Qu.:87.5   3rd Qu.:90.5                      3rd Qu.:2018  
                    Max.   :95.0   Max.   :98.0                      Max.   :2018  

可以看到,概要中已经没有了分组计数,但多了总数计量,如果要恢复分组计数,则需要重新创建因子,如下:


scores$sex <- factor(scores$sex, levels=c("M", "F"), ordered = TRUE)

结论

在导入大批量数据时,为了提高性能,尽可能分两步走:

1. 显式指定“stringsAsFactors = FALSE”;

2. 依次将所需要的数据列(向量)转换为因子;

补充:R语言:变量名称和字符串的转换

在R语言中,经常会遇到变量名称和字符串相互转换的问题。

比如说,进行1000次循环运算,并将运算结果存储在1000个变量中,如x_1, x_2, ... , x_1000。这时候可以使用assign()函数,示例如下:


> a
错误: 找不到对象'a'
> assign('a', 1)
> a
[1] 1

上面的例子将字符'a'转变为变量a,并将其赋值为1 。

相反,如果我们想遍历一个变量序列,并对其中的每一个变量都进行操作,该怎么办呢?我们可以使用get()函数。示例如下:


> a <- 1
> b <- 2
> c <- 3
> sequence <- c('a', 'b', 'c')
> for (var in sequence){print(var + 10)}

错误于var + 10 : 二进列运算符中有非数值参数


> for (var in sequence){print(get(var) + 10)}
[1] 11
[1] 12
[1] 13

我们可以发现,get函数将字符var转变为变量,并根据变量的值进行后续操作。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: R语言:实现因子与字符串的互转

本文链接: https://www.lsjlt.com/news/123956.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • R语言:实现因子与字符串的互转
    在导入大批量数据时,如果没有显式地指定“stringsAsFactors = FALSE”,默认会将所有的字符串转换为因子,导致数据处理速度较慢。 示例数据如下: name,ma...
    99+
    2022-11-12
  • 怎么在R语言中将因子转换成字符串
    这篇文章将为大家详细讲解有关怎么在R语言中将因子转换成字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。示例数据如下:name,math,english,sex,year"yii...
    99+
    2023-06-14
  • R语言-因子与向量的转换方式
    一、因子的特点或性质 1、因子可视为C或JAVA语言中的枚举,适用于有限状态的表示。 2、因子不可以赋枚举集合外的值,如一个因子包含male,female,则不能再赋male和fem...
    99+
    2022-11-12
  • R语言-实现将向量转换成一个字符串
    将向量a,b装换成一个字符串,其中: a=c(1,2,3,4) b=c(2,3,4,5) 为了将其转化成一个字符串可以通过引入包stringr,使用str_c实现,使用past...
    99+
    2022-11-12
  • R语言因子类型的实现
    目录1.因子2.table() 函数3.tapply() 函数4.forcats 包的因子函数1.因子       &nb...
    99+
    2022-11-13
  • Golang字符串与字节数组互转的实现
    目录一、字符串与字节数组?二、详细代码1.字节转字符串2.字符串转字节数组3.完整运行测试总结一、字符串与字节数组? 字符串是 Go 语言中最常用的基础数据类型之一,本质上是只读的字...
    99+
    2022-11-13
  • R语言如何实现将向量转换成一个字符串
    这篇文章给大家分享的是有关R语言如何实现将向量转换成一个字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件...
    99+
    2023-06-14
  • Python 字典与字符串的互转实例
    字典转换为字符串 if __name__ == '__main__': a = {'a' : 1, 'b' : 2, 'c' : 3} b = str(a) print(type(b)) ...
    99+
    2022-06-04
    字符串 字典 实例
  • C++ COLORREF与字符串互转怎么实现
    要将COLORREF转换为字符串,您可以使用sprintf函数来实现。以下是一个示例代码: COLORREF color = RGB...
    99+
    2023-10-24
    C++
  • go语言int64整型转字符串的实现
    go语言中string(int)会把int当成UTF-8的Unicode值,转换成对应的字符,标准库strconv是专门用来实现基本数据类型和其字符串表示的相互转换。 package...
    99+
    2023-03-07
    go语言int64转字符串 go语言整型转字符串
  • c语言如何实现字符串反转
    C语言可以通过循环遍历字符串并交换字符的位置来实现字符串的反转。具体步骤如下:1. 首先,定义一个指向字符串的指针。2. 使用`st...
    99+
    2023-09-12
    c语言
  • C语言的变量与常量 字符字符串与转义字符详解
    目录一.变量1.1定义变量的方法1.2变量的分类1.3变量的使用二.常量2.1字面常量 2.2 const修饰的常变量 2.3#define定义的标识符常量2.4...
    99+
    2022-11-12
  • ​C语言怎么实现ASCII和字符互转
    这篇文章主要介绍了C语言怎么实现ASCII和字符互转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现ASCII和字符互转文章都会有所收获,下面我们一起来看看吧。代码如下:#include ...
    99+
    2023-06-17
  • R语言-实现提取包含某字符串的行变量
    已解决 用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/resource/activit...
    99+
    2022-11-12
  • C语言中字符串反转怎么实现
    这篇文章主要介绍C语言中字符串反转怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码实现#include <stdio.h>#include <string.h>#...
    99+
    2023-06-25
  • Go语言strconv包实现字符串和数值类型的相互转换
    目录string 与 int 类型之间的转换Itoa():整型转字符串Atoi():字符串转整型Parse 系列函数ParseBool()ParseInt()ParseUnit...
    99+
    2022-06-07
    GO 字符串 值类型 字符
  • C#实现文件与字符串互转的方法详解
    目录实现功能开发环境实现代码实现效果嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输,为了...
    99+
    2022-11-13
  • C语言实现将字符串转换成整数
    目录准备工作1.NULL指针2.空字符串3.空格4.正负号5.非法字符6.越界测试总结这是一个很有意思的问题。请不要把这个问题想的太简单了,考虑问题时应该尽可能的全面一些。请先思考并...
    99+
    2023-05-14
    C语言字符串转整数 C语言 字符串 整数
  • go语言int64整型转字符串如何实现
    本篇内容介绍了“go语言int64整型转字符串如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!go语言中string(int)会把in...
    99+
    2023-07-05
  • R语言中字符串的拼接操作实例讲解
    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量。 函数paste的一般使用格式为: paste(..., sep = " ", collaps...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作