一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - R語言 - R語言變量重編碼、重命名的操作

R語言變量重編碼、重命名的操作

2022-01-06 14:26交小通 R語言

這篇文章主要介紹了R語言變量重編碼、重命名的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、變量重編碼

重編碼涉及根據同一個變量和/或其他變量的現有值創建新值的過程,如將符合某個條件的值重新賦值等,這里主要介紹兩種常見的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#第一種方法
per <- data.frame(name = c("張三","李四","王五","趙六"),
                  age = c(23,45,34,1000))
per
per$age[per$age == 1000] <- NA #設置缺失值
per$age1[per$age < 30] = "young" #生成新變量
per$age1[per$age >= 30 & per$age<50] <- "middle age"
per
#第二種方法
per <- data.frame(name = c("張三","李四","王五","趙六"),
                  age = c(23,45,34,1000))
per <- within(per,{
   age1 <- NA
   age1[age < 30] <- "young"
   age1[age>=30 & age<50] <- "middle age"
})
per

2、變量的重命名

變量已經存在,但是如果對變量名稱不滿意,可以對變量重新命名,這里提供以下幾種方法:

手動輸入。應用fix()函數調出編輯框,手動輸入即可。

使用names()函數。格式為:names(x) <- value。需要指定對第幾個變量名進行修改。

使用plyr包中的rename()函數。格式為rename(x, replace, warn_missing = TRUE, warn_duplicated = TRUE),需要指定對哪個變量名進行修改。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
per <- data.frame(name = c("張三","李四","王五","趙六"),
                  age = c(23,45,34,1000))
per
#第一種方法:手動輸入
fix(per) #調出輸入框,手動輸入
#第二種方法,names()函數
per <- data.frame(name = c("張三","李四","王五","趙六"),
                  age = c(23,45,34,1000))
names(per)[2] <- "年齡"  #指定第個變量重命名
per
#第三種方法
per <- data.frame(name = c("張三","李四","王五","趙六"),
                  age = c(23,45,34,1000))
library(plyr)
per <- rename(per,c(age="年齡")) #直接對變量名進行修改
per

補充:R語言變量的處理(創建新變量 變量重新賦值)

創建新變量:

方法一:

?
1
2
3
4
#在mydata數據庫中創建新變量sum,sum是mydata數據庫中x1和x2之和
mydata$sum <- mydata$x1 + mydata$x2
#在mydata數據庫中創建新變量mean,sum是mydata數據庫中x1和x2平均
mydata$mean <- (mydata$x1 + mydata$x2)/2

eg:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
> newwomen=women
> newwomen$bmi=women$weight/women$height^2;
> newwomen
   height weight        bmi
1      58    115 0.03418549
2      59    117 0.03361103
3      60    120 0.03333333
4      61    123 0.03305563
5      62    126 0.03277836
6      63    129 0.03250189
7      64    132 0.03222656
8      65    135 0.03195266
9      66    139 0.03191001
10     67    142 0.03163288
11     68    146 0.03157439
12     69    150 0.03150599
13     70    154 0.03142857
14     71    159 0.03154136
15     72    164 0.03163580
>

方法二:

?
1
2
3
4
attach(mydata) #附上數據mydata
mydata$sum <- x1 + x2 #在mydata數據庫中創建新變量sum
mydata$mean <- (x1 + x2)/2 #新變量mean
detach(mydata) #每次attach數據之后,應該detach,解除之前的數據庫粘附

這個地方我們看見x1和x2變量前面不需要再使用mydata$,那是因為我們之前已經附上mydata數據庫(attach),這個時候,R已經知道會利用附上的數據中的x1和x2變量直接計算。但是創建的新變量sum必須使用$在mydata數據庫之下,不然R就會計算出名字為sum,但是是個list性質的單獨數據庫。

方法三:

?
1
2
mydata <- transform( mydata, sum = x1 + x2,mean = (x1 + x2)/2)
#通過一行命令創建多個新變量。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
newwomen=transform(women,bmi=weight/height^2)
> newwomen
   height weight        bmi
1      58    115 0.03418549
2      59    117 0.03361103
3      60    120 0.03333333
4      61    123 0.03305563
5      62    126 0.03277836
6      63    129 0.03250189
7      64    132 0.03222656
8      65    135 0.03195266
9      66    139 0.03191001
10     67    142 0.03163288
11     68    146 0.03157439
12     69    150 0.03150599
13     70    154 0.03142857
14     71    159 0.03154136
15     72    164 0.03163580

變量重新賦值

方法一:

?
1
mydata$agecat <- ifelse(mydata$age > 70,c("older"), c("younger")) # 創建年齡組別(2組)

該命令利用ifelse函數,有點類似于其他語言中的if….else。 該命令左邊告訴R我們需要在mydata數據庫里面創建新變量agecat(年齡組),該變量當age>70時,年齡組變量賦值為older,其他情況下(age<=70),年齡組變量賦值為younger。關于更多ifelse()信息和案例,可通過help(ifelse)查看。

方法二:

?
1
2
3
4
5
6
attach(mydata)
mydata$agecat[age > 75] <- "Elder"
mydata$agecat[age > 45 & age <= 75] <- "Middle Aged"
mydata$agecat[age <= 45] <- "Young"
detach(mydata)
#創建變量agecat,并按照年齡大小直接賦值.

重命名

方法一

?
1
fix(mydata) #直接重命名,關閉時保存

方法二

?
1
2
3
library(reshape)
mydata <- rename(mydata, c(oldname="newname"))
#利用reshape包里面的rename函數直接重命名。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/m0_46291589/article/details/104338511

延伸 · 閱讀

精彩推薦
  • R語言R語言中的vector(向量),array(數組)使用總結

    R語言中的vector(向量),array(數組)使用總結

    這篇文章主要介紹了R語言中的vector(向量),array(數組)使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要...

    A葉子葉來5772021-11-14
  • R語言R語言常量知識點總結

    R語言常量知識點總結

    在本篇文章里小編給大家整理了一篇關于R語言常量知識點總結內容,有興趣的朋友們可以學習分享下。...

    R語言教程網12102021-12-29
  • R語言R語言中qplot()函數的用法說明

    R語言中qplot()函數的用法說明

    這篇文章主要介紹了R語言中qplot()函數的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    Jack_丁明12752022-01-05
  • R語言R語言讀取xls與xlsx格式文件過程

    R語言讀取xls與xlsx格式文件過程

    這篇文章主要為大家介紹了使用R語言讀取xls與xlsx格式文件的過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪...

    Kanny廣小隸11982022-01-20
  • R語言R語言gsub替換字符工具的具體使用

    R語言gsub替換字符工具的具體使用

    這篇文章主要介紹了R語言gsub替換字符工具的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    lztttao10372021-12-24
  • R語言基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    這篇文章主要介紹了基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    truffle52815052022-01-05
  • R語言R語言實現支持向量機SVM應用案例

    R語言實現支持向量機SVM應用案例

    本文主要介紹了R語言實現支持向量機SVM應用案例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一天_pika5222022-01-18
  • R語言如何用R語言繪制散點圖

    如何用R語言繪制散點圖

    這篇文章主要介紹了如何用R語言繪制散點圖,幫助大家更好的理解和學習使用R語言,感興趣的朋友可以了解下...

    菜鳥教程13002021-12-23
主站蜘蛛池模板: 亚洲国产成人精品 | 国内在线观看 | 国产伦精品一区二区三区女 | 国产成人综合精品一区 | 好 舒服 好 粗 好硬 好爽 | 99久久精品免费看国产高清 | 欧美一区二区三区在线观看免费 | 香蕉91视频 | 九九99亚洲精品久久久久 | 亚洲国产精品综合久久网络 | 公共场合高h短篇 | 性夜a爽黄爽 | 午夜综合网 | 亚洲欧美日韩国产综合专区 | 亚洲人成网站在线观看妞妞网 | 亚洲天堂男人网 | 青草国内精品视频在线观看 | 亚洲天堂岛国片 | 国产成人免费片在线视频观看 | 日本久久热 | 午夜福到在线2019 | uoco福利姬| 午夜久久影院 | 免费网站看v片在线成人国产系列 | 99rv精品视频在线播放 | 精品视频网站 | 欧美极品brazzers 高清 | 亚洲 欧美 国产 日韩 字幕 | 国产免费看黄的私人影院 | 久久精品人人做人人爽97 | 秋葵污视频| www.日日爱 | 大伊香蕉精品二区视频在线 | 91精品国产99久久 | 久久综合视频网站 | 91av俱乐部 | 免费黄色片网站 | 四虎免费永久观看 | 娇妻与老头绿文小说系列 | 午夜熟女插插XX免费视频 | 欧美精品一区二区在线观看播放 |