R 變數類型
判斷變數類型函數 class()
R內建的class(x)
可以用來判斷資料類型
首先可以分為下面6種資料類型
R 處理數值的限制
在R內建的數值運算上是有限制的
R 的 .Machine
這個內建變數中有一些關於數值資料的資訊
這些資訊可能會因為不同的電腦而有不同(不過對大多數的電腦而言,通常都是一樣的)
以下是跟一般使用者比較相關的數值。
.Machine$double.xmax
與 .Machine$double.xmin
分別表示目前 R 所能處理的最大浮點數與最小正浮點數:
.Machine$double.xmax
# [1] 1.797693e+308
.Machine$double.xmin
# [1] 2.225074e-308
.Machine$integer.max 則是 R 可以處理的最大整數值:
.Machine$integer.max
[1] 2147483647
2147483647 這個值就等於 2^31^ −1
如果需要更高精度的數值運算可以使用 Rmpfr 這個套件
而如果是大數運算,則可以使用 brobdingnab 套件。
浮點數陷阱
而浮點數大家可以去查看看,對他了解是一種電腦存檔所產生問題
在某些運算時可能回造成與我們預期解果不同
多數程式語言都會有問題
但也都有解決方法
看是使用套件Rmpfr或是換個方式判斷結果
例如用R計算((0.81 * 0.1) + (0.09 * (-0.9)))
理論上是0但結果會得到1.387779e-17
那這時可以像是以有效位數的方式擷取到小數點後兩位
或是做判斷是不是 -0.01 < x < 0.01
一個可以接受的誤差範圍去做區分
Data Frames資料框架
data frame 是一個用來儲存類似 Excel 表格的變數類型它跟矩陣類似
不過 data frame 的每個行(column)可以儲存不同變數類型的資料
甚至非狀巢結構的列表亦可
像是很有名的 iris 資料集就是data frame的資料
建立 Data Frames
我們可以使用 data.frame
函數來建立 data frame 變數
test.df <- data.frame(
x = letters[1:10], #生成字母串列
y = rnorm(10), #生成常態分佈亂數
z = runif(10) > 0.5 #生成隨機數字後判斷是否大於0.5
)
test.df
參考資料
>R程式語言的基礎:物件 >>吳漢銘 國立臺北大學 統計學系
>R的變數與空間 >>G. T. Wang
>R语言 诡异的精度 >>統計之都
今天先分享到這邊希望大家都有收穫
網站所有文章皆為 H.B. Liu 撰寫,歡迎分享但勿轉製
也可以到粉專私訊我
喜歡我分享的內容也可以按讚追蹤一下我的粉專
幫我分享給所~~~有的朋友 \o/
有所錯誤歡迎指教
<
留言
張貼留言