R語言學習總結 資料操作

2021-08-01 01:58:42 字數 3825 閱讀 5831

> mode(1:5)

[1] "numeric"

class() 判斷資料的類

> class(1:5)

[1] "integer"

根據資料的類,採用相應的處理方法。

以下函式,主要用在函式處理異常時使用,目的是增強程式的穩健性。

is.numeric() #返回值為true或false

> is

.numeric(1:5)

[1]true

is.logical() #是否為邏輯值

> is.logical(true)

[1] true

is.charactor() #是否為字串

[1] true

is.null() #是否為空

> is.null(x)

[1] false

is.na() #是否為na

>ug=read.table("clipboard",header=t)#先載入資料
1.下標法

idname *** region birth income height weight score

1201205a01 趙** 女 東部 1992/4/8

16.6

16466

64.1

> ug[1:6,]

> ug[c(1,6,20),]#選取第

一、六、二十行

2.$法

> ug[ug$***=='女',]#選取性別為女的行

> ug[ug$height>170,]#選取身高大於170的行

3.subset法

subset(ug,***=='女')#選取性別為女的行

subset(ug,***=='女'&height>170)#選取性別為女且身高大於170的行

1.下標法

ug[,1:6]#選取第1到6列變數
2.$法

>x=ug$height

#把變數為height的這一列賦給x

3.attach法

#用attach相當於繫結了ug資料集,接下來的操作都是基於ug資料集的,所以height就不必使用$。使用完之後,要記得使用detach()解綁

attach(ug)

mean(height)

mean(weight)

plot(height,weight)

detach()

4.with()

> with(ug,)
#選取身高大於170的女生的身高和體重資料

ug[ug$***=='女' & ug$height>170,c('***','height','weight')]

總而言之,r語言的資料選取其實和matlab的矩陣選取有點類似。

names(ug)#檢視ug內的變數名
1.建立變數

a.$法

> ug$gpa=ug$score/10-5

#這種做法會在ug後面加上gpa一列

b.transform法

> transform(ug,gpa=score/10-5)#等價於上一句
3.變數轉換

類的轉換

as.numeric() #轉換為數值型

as.logical() #轉換為邏輯型

> as.logical(0)

[1] false

> as.logical(10)

[1] true

as.charactor() #轉換為字串

as.matrix() #轉換為矩陣

as.data.frame() #轉換為資料框

as.factor() #轉換為因子

4.刪除變數

ug$gpa=null

#直接賦為空值

ls()#顯示記憶體中的物件

rm(x)#去掉x

5.重新編碼(分組)

用within函式

ug=within(ug,)
用cut函式

ug$income_c=cut(ug$income,breaks=c(0,5,50,max(ug$income)))
1.排序

sort()用於向量的排序;order()用於多變數(資料框)的排序,預設公升序

ug[order(ug$income),]#對收入進行公升序排序
2.資料集合並

a.cbind()和rbind()

這裡的用法和前面矩陣的合併的用法一樣,關鍵是注意行數或列數要一致

b.merge()

merge(集合a,集合b,by=」variable」)#variable是a和b共有,按照variable合併

3.缺失值的處理

is.na(x)#判斷x是否含有缺少值

na.omit(x)#移除x中的缺失值

1.for迴圈

for(變數 in 取值向量)

編個求和函式

x_sum=function(x)
2.while迴圈

while(迴圈條件)

比如編寫乙個計算2000以內的fibonacci數的程式

> x_sum=function(x)

> f=1;f[2]=1;i=1

> while(f[i]+f[i+1]<2000)

> f

[1] 1 1 2 3 5 8 13 21 34 55 89 144

[13] 233 377 610 987 1597

3.repeat迴圈

repeat

repeat迴圈沒有判斷,所以在使用是時候要加上break語句以跳出迴圈

用repeat迴圈編寫乙個計算2000以內的fibonacci數的程式

> f=1;f[2]=1;i=1

> repeat

> f

[1] 1 1 2 3 5 8 13 21 34 55 89 144

[13] 233 377 610 987 1597

1.if/else語句

if(條件)

if(條件) else

舉個例子,編寫乙個絕對值函式

> abs_x=function

(x)+ x

+ }> abs_x(-9)

[1]9

> abs_x(10)

[1]10

2.ifelse語句

if語句的簡潔表達

ifelse(判斷條件,a,b): 若判斷條件為真,執行a,否則執行b。

> x=c(6,-2)

> ifelse(x<=0,-x,x)

[1] 6 2

函式名=function(引數)

R語言學習軌跡總結

2016年初正式開始用r 主要用來做資料探勘 2016年期間做了回歸分析和關聯分析 2017年開始用rstudio做自動化生成報告.學習互動視覺化 2018年重心在互動視覺化報告領域 已將工作報告習慣全部從excel轉向了r 這一年在r視覺化應用了頗有心得 也完成了組內的分享匯報 2019年的期許 ...

R語言學習

sd計算樣本的標準差 var計算樣本的方差 cor計算兩個變數間的相關係數 cov計算兩變數間的協方差 使用函式library或者函式require把需要的r包載入r中 library函式中的r包名不需要用雙引號括起來。detach package mass 函式會解除安裝當前已載入的r包。呼叫其他...

R語言學習

隨著大資料和雲計算快速發展,對資料分析提出了更高的要求。r語言就是乙個相對簡單運用廣泛的統計分析語言工具。r語言以簡潔著稱,一行 就可以繪製一幅圖。例如,我們需要繪製乙個全班男女生佔比圖,男生24個,女生16個。pie c 24,16 c 男生 60 女生 40 main 全班男女生佔比圖 col ...