怎么在R语言中将因子转换成字符串

发布时间:2021-04-19 16:25:03 作者:Leah
来源:亿速云 阅读:800

这篇文章将为大家详细讲解有关怎么在R语言中将因子转换成字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

示例数据如下:

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

关于怎么在R语言中将因子转换成字符串就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. 怎么在python中将dict转换成json
  2. 怎么在python中将list转换成矩阵

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

r语言 字符串

上一篇:超链接无法打开如何解决

下一篇:怎么在R语言中定义数据框的列名

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》