最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R語言變量級別的數(shù)據(jù)處理操作

 更新時間:2021年04月17日 10:04:41   作者:「已注銷」  
這篇文章主要介紹了R語言變量級別的數(shù)據(jù)處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

變量級別的數(shù)據(jù)處理無非是對變量的增刪改查。

即增加新的變量

R語言中,增加一個新變量形式語句如下:

變量名 <- 表達(dá)式

表達(dá)式可以包含多種運(yùn)算符和函數(shù)。常見運(yùn)算符包括:

運(yùn)算符 描述
+
-
*
/
^或** 求冪
x%%y 求余(x mod y)。5%%2的結(jié)果為1。
x%/%y 整數(shù)除法。5%/%2的結(jié)果為2。

示例:

#創(chuàng)建一個數(shù)據(jù)框
mydata <- data.frame(x1 = c(2,2,6,4),
+                      x2 = c(3,4,2,8))
mydata
  x1 x2
  2  3
  2  4
  6  2
  4  8
#綁定mydata
attach(mydata)
#為mydata數(shù)據(jù)框增加一個sum變量
mydata$sum <- x1 + x2
#為mydata數(shù)據(jù)框增加一個mean變量
mydata$mean <- (x1+x2)/2
mydata
  x1 x2 sum mean
  2  3   5  2.5
  2  4   6  3.0
  6  2   8  4.0
  4  8  12  6.0
#解除綁定
detach(mydata)
#用transform函數(shù)可以達(dá)到同樣效果
mydata <- transform(mydata,sumx = x1+x2,meanx = (x1+x2)/2)
mydata
  x1 x2 sum mean sumx meanx
  2  3   5  2.5    5   2.5
  2  4   6  3.0    6   3.0
  6  2   8  4.0    8   4.0
  4  8  12  6.0   12   6.0

attach與detach函數(shù)用于綁定和解除數(shù)據(jù)集,以簡化數(shù)據(jù)處理過程。如果不使用二者,生成sum變量,則每個變量名之前需要加上數(shù)據(jù)集名稱+$符號。

使用transform函數(shù),語法格式為transform(數(shù)據(jù)集名稱,變量名=表達(dá)式)

隨著R語言的發(fā)展出現(xiàn)了tidyverse系列包可以進(jìn)行完整的數(shù)據(jù)分析流程。本基礎(chǔ)教程以傳統(tǒng)方法為主,tidyverse系列日后涉及。

即刪除不需要的變量或選擇需要的變量。

#將R語言自帶鳶尾花數(shù)據(jù)集賦值給data
data <- iris
#查看前5行
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
          5.1         3.5          1.4         0.2  setosa
          4.9         3.0          1.4         0.2  setosa
          4.7         3.2          1.3         0.2  setosa
          4.6         3.1          1.5         0.2  setosa
          5.0         3.6          1.4         0.2  setosa
          5.4         3.9          1.7         0.4  setosa
#選擇第3到5的變量,即刪除1到2的變量
data <- data[,c(3:5)]
#查看新的數(shù)據(jù)
head(data)
  Petal.Length Petal.Width Species
          1.4         0.2  setosa
          1.4         0.2  setosa
          1.3         0.2  setosa
          1.5         0.2  setosa
          1.4         0.2  setosa
          1.7         0.4  setosa
#生成一個包含變量名字的向量vars
vars <- c('Sepal.Width','Petal.Length')
#將R語言自帶鳶尾花數(shù)據(jù)集賦值給data
data <- iris
#從data數(shù)據(jù)集選擇包含vars內(nèi)變量的數(shù)據(jù)
data <- data[vars]
#查看前5行
head(data)
  Sepal.Width Petal.Length
         3.5          1.4
         3.0          1.4
         3.2          1.3
         3.1          1.5
         3.6          1.4
         3.9          1.7
#將R語言自帶鳶尾花數(shù)據(jù)集賦值給data
data <- iris
#使用%in%判斷data內(nèi)的變量名是否為Sepal.Length,是返回TRUE,否則返回FALSE。賦值給myvars
myvars <- names(data)%in%c('Sepal.Length')
#!myvars反向選擇,生成不包含Sepal.Length變量的數(shù)據(jù)集newdata
newdata <- data[!myvars]
#查看前5行
head(newdata)
  Sepal.Width Petal.Length Petal.Width Species
         3.5          1.4         0.2  setosa
         3.0          1.4         0.2  setosa
         3.2          1.3         0.2  setosa
         3.1          1.5         0.2  setosa
         3.6          1.4         0.2  setosa
         3.9          1.7         0.4  setosa

包括對變量的值的修改和對變量的類型的修改。兩者有時存在某些共變,如連續(xù)變量離散化就是為將連續(xù)變量類型轉(zhuǎn)化為分類變量(因子)類型。

變量的值的修改(重編碼)包括連續(xù)變量離散化、分類變量取值合并。

可以使用R中的一個或多個邏輯運(yùn)算符重編碼數(shù)據(jù)。邏輯運(yùn)算符表達(dá)式返回TRUE或FALSE。

運(yùn)算符 描述
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
!x 非x
x豎線y x或y
x&y x和y
isTRUE(x) 測試x是否為TRUE

x豎線y為x|y,本文章編碼顯示問題才用豎線代替|

變量修改的語法為variable[condition]<-expression

其中,variable為變量名,condition為條件,expression為賦值。

在condition的值為TRUE時執(zhí)行賦值。

示例:

#首先生成一個數(shù)據(jù)框
age <- c(15,18,59,48,26,58,74,85,99,52)
sex <- c(1,2,1,2,1,1,1,2,2,1)
ship <- data.frame(age,sex)
ship
   age sex
   15   1
   18   2
   59   1
   48   2
   26   1
   58   1
   74   1
   85   2
   99   2
  52   1
#將年齡取值99視為缺失值NA
ship$age[ship$age==99] <- NA
#將年齡大于75的取值為Elder,賦值給agecat變量。
ship$agecat[ship$age>75] <- 'Elder'
#將年齡介于55-75之間的取值為Middle Aed,賦值給agecat變量。
ship$agecat[ship$age>=55 & ship$age<=75] <- 'Middle Aged'
#將年齡小于55的取值為Young,賦值給agecat變量。
ship$agecat[ship$age<55] <- 'Young'
ship
   age sex      agecat
   15   1       Young
   18   2       Young
   59   1 Middle Aged
   48   2       Young
   26   1       Young
   58   1 Middle Aged
   74   1 Middle Aged
   85   2       Elder
   NA   2        <NA>
  52   1       Young
#合并分類變量取值
#將agecat為Elder的取值為TRUE,賦值給isElder變量
ship$isElder[ship$agecat=='Elder'] <- TRUE
#將agecat不是Elder的取值為FALSE,賦值給isElder變量
ship$isElder[ship$agecat !='Elder'] <- FALSE
ship
   age sex      agecat isElder
   15   1       Young   FALSE
   18   2       Young   FALSE
   59   1 Middle Aged   FALSE
   48   2       Young   FALSE
   26   1       Young   FALSE
   58   1 Middle Aged   FALSE
   74   1 Middle Aged   FALSE
   85   2       Elder    TRUE
   NA   2        <NA>      NA
  52   1       Young   FALSE
判斷 轉(zhuǎn)換
is.numeric() as.numeric()
is.character() as.character()
is.factor() as.factor()

某些R函數(shù)需要指定數(shù)據(jù)集類型,as.datatype()函數(shù)可以使數(shù)據(jù)轉(zhuǎn)換為所要求的的格式。

查看變量類型,使用上述表格中判斷函數(shù)或str()函數(shù)。

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

相關(guān)文章

最新評論

井研县| 买车| 象州县| 昌都县| 玉林市| 永安市| 巴楚县| 来安县| 葵青区| 汝州市| 姚安县| 岳阳县| 赞皇县| 巢湖市| 江津市| 阳原县| 滨州市| 中江县| 井研县| 綦江县| 揭东县| 郴州市| 邹城市| 华蓥市| 云安县| 安阳县| 荣成市| 磐安县| 利津县| 嵊泗县| 河间市| 彭水| 宕昌县| 左贡县| 若尔盖县| 塔城市| 锦屏县| 定陶县| 如皋市| 墨江| 江川县|