r语言转化为python_数值型与字符型转换总结|R语言
在日常碰到問題時出現當前“數據類型不能進行操作”的提示時還是有些腦殼疼,所以這次整理了針對R數據類型轉換的總結。理論部分主要是R for Data Science的向量節選翻譯、《R語言實戰》第二章2.2創建數據結構、《R in a Nutshell》以及猴子老師的向量ppt。
————文章結構——————
一、理論知識向量、矩陣、數據框等基本介紹
integer和double的區別
向量和因子區別
tibble和data frame區別
二、舉個例子某一列文本轉為數字
某一列數字轉為文本
三、總結一下
——————————————
一、理論知識
1.向量、矩陣、數據框等基本介紹
有兩種類型的向量:
(1)原子向量,其中有六種類型:logical,integer, double, character, complex和 raw,integer和double統稱為numeric(數值)向量。
(2)列表,有時稱為遞歸向量,因為列表可以包含其他列表。
原子向量和列表之間的主要區別在于原子向量是均勻的,而列表可以是異構的(即列表的數據結構可以不一致)。還有一個相關的對象:NULL。NULL通常用于表示缺少矢量(與NA用于表示矢量中缺少值的情況相反)。NULL通常表現為長度為0的矢量。下圖為關系圖。圖片來源:http://r4ds.had.co.nz/vectors.html
可以說,向量是最基本存在,那么向量和矩陣、數組、數據框這些又是什么關系呢?
向量最基礎。
數組:多維的向量(向量可以理解為一維數組,矩陣可以理解為二維數組)
#一維數組(向量)
a
a
#二維數組(矩陣)
b
b
#多維數組(還是數組)
c
c
結果:
這里補充以下,如果矩陣按列填充,需要加上byrow=T
b
而對于數據框,我的理解是,我們最常使用的excel表就是數據框模式,比如醫院數據,病人編號、性別、血型,每一列都是相同的數據結構,結合成一個大表供我們分析。
2.integer和double區別
數值型向量包含兩種類型:integer和double
我以前老糾結啥時候辨別這兩類數值型向量呢?看圖來操作:
查看數據類型最好用typeof,可以看出double比int要普遍一些,一般的c(1,2,3)都是double,但如果都加了L,變為integer了。這兩類數值型向量不用太擔心二者關系,一般R可以內部自動轉換這兩類數值然后計算。
也可以轉換,轉換代碼為:
as.double()
as.integer()
3.向量和因子區別
另一個例子:
上圖來源:書
再舉個例子圖片來源:http://www.cyclismo.org/tutorial/R/types.html
總結來說,就是屬于類別的向量最好轉化為因子。比如性別(男、女)、成績評級(優秀、良好、及格、不及格),這也說明了為什么總會看到stringasfactor=False.我們一般不選擇把向量先全部轉為因子,面對分類型變量才考慮那么做。
4.tibble和data frame區別
這兩個功能可以說完全一樣,只是在看書過程中發現tibble慢慢比data frame更流行起來,詳情可以見這篇文章tibble 1.0.0 | RStudio Blog,在導入dplyr包后,用tibble比用data frame更快捷簡潔,tbl_df代替了table(好吧我想說,一般還是用data frame,在用到dplyr包時,改用tibble就行)
二、舉個例子
1.某一類文本轉為數字
有一組這樣的數據,我想把性別一欄轉為女為1,男為2,方便計算,如何做?
setwd("c:\\Users\\Administrator\\desktop")
data1
typeof(data1)
table(data1$children)
a
b
data1$gender
結果如下:
貌似可以,但查看結構類型,還是字符串形式,需要轉為數值型才能進行后續計算。
data1$gender " />
不用擔心了,已經完全轉換好了。
2.某一類數字轉為文本
還是這個例子,如果想把children一列轉為yes(孩子數>0)和no(孩子數=0),如何做?
輸入代碼:
data1$children[data1$children > 0]
data1$children[data1$children == 0]
data1$children
levels=c(0,1),
labels=c("No","Yes"))
顯示結果:
這里補充一句,函數factor()可為類別型變量創建值標簽,代碼中levels代表變量實際值,labels表示包含了理想值標簽的字符型向量。
三、總結一下
本文為數據結構的溫習,感覺向量是地基,地基里有土渣渣(有數值型【數值型又包括double和integer】,邏輯型【TRUE,FALSE,NA】,字符型等),整個房子是數組,地基+一樓是向量,二樓是矩陣,房子和附近居民區構成數據框。
文本轉為數值型(用sub替換 --> as.numeric一下)
數值型轉為文本(先轉為factor形式,再創建標簽)
嗯,完結撒花~~~
總結
以上是生活随笔為你收集整理的r语言转化为python_数值型与字符型转换总结|R语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 肾透析一次多少钱啊?
- 下一篇: 输卵管造影要多少钱啊?