欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言:實現(xiàn)因子與字符串的互轉(zhuǎn)

 更新時間:2021年04月19日 11:40:51   作者:蟻方陣  
這篇文章主要介紹了R語言:實現(xiàn)因子與字符串的互轉(zhuǎn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在導(dǎo)入大批量數(shù)據(jù)時,如果沒有顯式地指定“stringsAsFactors = FALSE”,默認會將所有的字符串轉(zhuǎn)換為因子,導(dǎo)致數(shù)據(jù)處理速度較慢。

示例數(shù)據(jù)如下:

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

查看數(shù)據(jù)概要,發(fā)現(xiàn)默認將字符串轉(zhuǎn)換為因子,并進行了分組計數(shù)(這也是處理速度較慢的原因之一)

概要如下:

  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  

但這樣的分組計數(shù)并沒有意義,所以需要利用“as.character”轉(zhuǎn)換為字符,如下:

#! /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)
# 將因子轉(zhuǎn)換為字符
scores$name <- as.character(scores$name)
# 多轉(zhuǎn)一個進行測試
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  

可以看到,概要中已經(jīng)沒有了分組計數(shù),但多了總數(shù)計量,如果要恢復(fù)分組計數(shù),則需要重新創(chuàng)建因子,如下:

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

結(jié)論

在導(dǎo)入大批量數(shù)據(jù)時,為了提高性能,盡可能分兩步走:

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

2. 依次將所需要的數(shù)據(jù)列(向量)轉(zhuǎn)換為因子;

補充:R語言:變量名稱和字符串的轉(zhuǎn)換

在R語言中,經(jīng)常會遇到變量名稱和字符串相互轉(zhuǎn)換的問題。

比如說,進行1000次循環(huán)運算,并將運算結(jié)果存儲在1000個變量中,如x_1, x_2, ... , x_1000。這時候可以使用assign()函數(shù),示例如下:

> a
錯誤: 找不到對象'a'
> assign('a', 1)
> a
[1] 1

上面的例子將字符'a'轉(zhuǎn)變?yōu)樽兞縜,并將其賦值為1 。

相反,如果我們想遍歷一個變量序列,并對其中的每一個變量都進行操作,該怎么辦呢?我們可以使用get()函數(shù)。示例如下:

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

錯誤于var + 10 : 二進列運算符中有非數(shù)值參數(shù)

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

我們可以發(fā)現(xiàn),get函數(shù)將字符var轉(zhuǎn)變?yōu)樽兞浚⒏鶕?jù)變量的值進行后續(xù)操作。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • R語言ggplot2邊框背景去除的實現(xiàn)

    R語言ggplot2邊框背景去除的實現(xiàn)

    這篇文章主要介紹了R語言ggplot2邊框背景去除的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • R語言數(shù)據(jù)可視化繪圖Slope chart坡度圖畫法

    R語言數(shù)據(jù)可視化繪圖Slope chart坡度圖畫法

    這篇文章主要為大家介紹了R語言數(shù)據(jù)可視化繪圖Slope?chart坡度圖的畫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • R語言是什么 R語言簡介

    R語言是什么 R語言簡介

    R是用于統(tǒng)計分析、繪圖的語言和操作環(huán)境。R是屬于GNU系統(tǒng)的一個自由、免費、開源的軟件,它是一個用于統(tǒng)計計算和統(tǒng)計制圖的優(yōu)秀工具
    2021-03-03
  • R語言基礎(chǔ)數(shù)據(jù)類型的具體使用

    R語言基礎(chǔ)數(shù)據(jù)類型的具體使用

    本文主要介紹了R語言基礎(chǔ)數(shù)據(jù)類型的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • R語言boxplot函數(shù)深入講解

    R語言boxplot函數(shù)深入講解

    這篇文章主要介紹了R語言boxplot函數(shù)深入講解,文中圖文講解的很透徹,有感興趣的同學可以研究下
    2021-03-03
  • R語言繪圖數(shù)據(jù)可視化pie?chart餅圖

    R語言繪圖數(shù)據(jù)可視化pie?chart餅圖

    這篇文章主要介紹了R語言繪圖數(shù)據(jù)可視化pie?chart餅圖,教大家如何用R語言來畫大餅,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • R語言ggplot在熱圖上標注相關(guān)系數(shù)的操作方法

    R語言ggplot在熱圖上標注相關(guān)系數(shù)的操作方法

    R語言是一種開源、免費的編程語言,主要用于統(tǒng)計分析、圖形化和機器學習,這篇文章主要介紹了R語言ggplot怎么在熱圖上標注相關(guān)系數(shù),需要的朋友可以參考下
    2024-07-07
  • R語言隨機抽樣詳解

    R語言隨機抽樣詳解

    這篇文章主要介紹了R語言隨機抽樣,從總體中抽取樣本的方法很多,最常用的方法是簡單隨機抽樣,本文給大家詳細講解結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • R語言批量讀取某路徑下文件內(nèi)容的方法

    R語言批量讀取某路徑下文件內(nèi)容的方法

    批量地做就是解放雙手地過程,本文主要介紹了R語言批量讀取某路徑下文件內(nèi)容的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • R語言之反轉(zhuǎn)ggplot2中的圖例鍵順序方法詳解

    R語言之反轉(zhuǎn)ggplot2中的圖例鍵順序方法詳解

    在本教程中,我們將學習如何反轉(zhuǎn)ggplot2中圖例鍵的順序,文章通過詳細的示例代碼給大家介紹如何反轉(zhuǎn)ggplot2中的圖例鍵順序,感興趣的同學可以跟著小編一起來學習
    2023-05-05

最新評論