R語言數(shù)據(jù)類型

1.字符串

1.連接字符串 - paste()函數(shù)
  • 語法說明
paste(var-1,var-2..., sep = " ", collapse = NULL)
  • 參數(shù)解釋
var-1,var-2..., 表示要組合的任意數(shù)量的自變量
sep, 表示參數(shù)之間的任何分隔符。它是可選的
collapse, 用于消除兩個(gè)字符串之間的空格。 但不是一個(gè)字符串的兩個(gè)字內(nèi)的空間
2.格式化數(shù)字和字符串 - format()函數(shù)
  • 語法說明
format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none")) 
  • 參數(shù)解釋
x是向量輸入
digits是顯示的總位數(shù)
nsmall是小數(shù)點(diǎn)右邊的最小位數(shù)
scientific,設(shè)置為TRUE以顯示科學(xué)記數(shù)法
width指示通過在開始處填充空白來顯示的最小寬度
justify是字符串向左,右或中心的顯示。
3.提取字符串的一部分 - substring()函數(shù)
  • 語法說明
substring(x,first,last)
  • 參數(shù)解釋
x,是字符向量輸入
first,是要提取的第一個(gè)字符的位置
last,是要提取的最后一個(gè)字符的位置

2.向量

1.單元素向量

R語言中所有變量都以向量的方式儲(chǔ)存,所以單個(gè)輸入即為單元素向量

2.多元素向量
  • 實(shí)現(xiàn)方式一:使用冒號(hào)
v <- 5:13
print(v)
[1]  5  6  7  8  9 10 11 12 13
  • 實(shí)現(xiàn)方式二:使用Seq()函數(shù)
print(seq(5, 9, by = 0.4))
[1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0
  • 實(shí)現(xiàn)方式三:使用C()函數(shù)
s <- c('apple','red',5,TRUE)
print(s)
[1] "apple" "red"   "5"     "TRUE" 
3.訪問向量元素
  • 訪問向量元素時(shí),用[]建立索引,索引從"1"開始
    代碼示例:
t = c(1,2,3,4,5,6,7,8,9)
a = t[2]
b = t[c(1,3)]

代碼輸出

[1] 2
[2] 1,3
  • 索引中負(fù)值對(duì)應(yīng)元素會(huì)被丟棄
#代碼示例
c = t[-1,-5]
#代碼輸出
[1] 2,3,4,6,7,8,9
  • 使用TRUE,F(xiàn)ALSE,0,1亦可建立索引
d = t[0,0,0,0,0,0,0,1]
[1] 9
4.向量操作
  • 向量運(yùn)算:兩向量可以進(jìn)行加減乘除運(yùn)算,直接使用運(yùn)算符號(hào)即可(長(zhǎng)度不一樣的兩個(gè)向量運(yùn)算時(shí),較短的向量會(huì)被重復(fù)以達(dá)到相同長(zhǎng)度)
t = c(1,2,3,4,5,6)
q = c(1, 2)
#運(yùn)算時(shí) q = (1,2,1,2,1,2)
  • 向量元素排序:排序函數(shù) sort()
sort(x, decreasing = FALSE)

3.列表

1.創(chuàng)建列表

創(chuàng)建列表使用 list()函數(shù),列表可以包含字符串,數(shù)字,向量,布爾值等

list_data = list('red','green',1,2)
#輸出結(jié)果
[[1]]
[1] "red"

[[2]]
[1] "green"

[[3]]
[1] 1

[[4]]
[1] 2
2.命名列表元素

R語言中的列表可以重命名以便訪問,使用 names()函數(shù),同時(shí)命名多個(gè)列表元素時(shí),可以用 向量 傳入?yún)?shù)

names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")
3.訪問列表元素

訪問列表元素可以使用索引,對(duì)于已命名元素,也可以使用名稱訪問元素

#使用索引訪問
list_data[1]
#使用名稱訪問
list_data$NAME
4.操作列表元素
  • 刪除元素:列表元素刪除操作,即將該元素標(biāo)記為 NULL
ld[5] = NULL
  • 更新元素:更新元素可以直接使用索引替換
ld[2] = 1
5.合并列表

合并列表可以使用 c()函數(shù) 合并列表

list.merged = c(list_1,list_2)
#輸出結(jié)果【list_1 = c(1,2,3,4)  list_2 = c(4,5,6,7)】
[1] 1 2 3 4 4 5 6 7
6.將列表轉(zhuǎn)換為向量

使用 unlist()函數(shù) 可以將列表轉(zhuǎn)換為向量

4.矩陣

1.創(chuàng)建矩陣

創(chuàng)建矩陣使用 matrix()函數(shù) ,函數(shù)參數(shù)為:

matrix(data, nrow, ncol, byrow, dimnames)

函數(shù)的參數(shù)說明:

  • data 是成為矩陣的數(shù)據(jù)元素的輸入向量。
  • nrow 是要?jiǎng)?chuàng)建的行數(shù)。
  • ncol 是要?jiǎng)?chuàng)建的列數(shù)。
  • byrow 是一個(gè)邏輯線索。 如果為TRUE,則輸入向量元素按行排列。
  • dimname 是分配給行和列的名稱,行列的名稱用向量傳入,c(rowname_list,colname_list)
2.訪問矩陣元素

訪問矩陣元素,可以使用矩陣索引

  • 訪問具體元素:M[row_n,col_n]
  • 訪問某行元素:M[row_n,]
  • 訪問某列元素:M[,col_n]
3.矩陣計(jì)算

矩陣計(jì)算使用運(yùn)算符合和函數(shù),要求矩陣行列相等

5.數(shù)組

數(shù)組常用于儲(chǔ)存多維數(shù)據(jù),數(shù)組僅接受數(shù)值輸入

1.創(chuàng)建數(shù)組

創(chuàng)建數(shù)組使用 array()函數(shù)

array(data = NA, dim = length(data), dimnames = NULL)
  • data,表示輸入數(shù)據(jù),一般使用多維向量輸入,如 c(vector_1,vector_2)
  • dim,表示數(shù)組的維度,輸入為向量,如 c(row_n,col_n,dim_n)
  • dimnames,表示數(shù)組的維度名稱,輸入同樣為向量
2.訪問數(shù)組元素

訪問數(shù)組元素主要使用索引

  • 訪問具體元素:A[row_n,col_n,dim_n]
  • 訪問某行元素:A[row_n,,dim_n]
  • 訪問某列元素:A[,col_n,dim_n]
  • 訪問某維元素:A[,,dim_n]
3.跨數(shù)組元素的計(jì)算

apply()函數(shù)可用于操作跨數(shù)組元素進(jìn)行計(jì)算,其語法為:

apply(x, data, function)
  • x,表示操作的矩陣
  • data,表示用于操作的矩陣的維度,"1"表示對(duì)行進(jìn)行操作;"2"表示對(duì)列進(jìn)行操作
  • function,表示用于操作的函數(shù)
示例
a<-matrix(1:12,nrow=3)
apply(a,2,mean)
#輸出結(jié)果
[1]  2  5  8 11

6.因子

因子是R語言中比較特別的數(shù)據(jù)類型,主要用于儲(chǔ)存"類別"數(shù)據(jù).R把表示分類的數(shù)據(jù)稱為因子

  • 因子是一個(gè)向量,通常情況下,每個(gè)元素都是字符類型,也有其他類型數(shù)據(jù)
  • 因子具有因子水平,用于限制因子的取值范圍
1.創(chuàng)建因子

通常情況下,R隱式把數(shù)據(jù)類型為字符的列創(chuàng)建為因子,因?yàn)镽會(huì)把文本類型自動(dòng)識(shí)別為類別數(shù)據(jù),并自動(dòng)轉(zhuǎn)化為因子,但同時(shí)也可以通過 factor()函數(shù) 顯式創(chuàng)建,語法如下:

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)
  • x,表示用于創(chuàng)建因子的字符
  • levels,是水平的標(biāo)簽,字符類型,用于對(duì)水平添加標(biāo)簽,相當(dāng)于對(duì)因子水平重命名
  • ordered,邏輯值,用于指定水平是否有序
  • nmax,水平的上限數(shù)量
2.因子水平
  • 查看因子水平:使用 levels(factor) 查看
  • 因子水平的標(biāo)簽:使用 factor()函數(shù) 創(chuàng)建因子時(shí),可以通過 lables 參數(shù)為 因子水平 添加標(biāo)簽
 sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)

7.數(shù)據(jù)幀

數(shù)據(jù)幀是表或二維矩陣列狀結(jié)構(gòu),每一列包含一個(gè)變量的值,并且每一行包含來自每一列的一組值

  • 列名稱應(yīng)為非空
  • 行名稱應(yīng)該是唯一的
  • 存儲(chǔ)在數(shù)據(jù)幀中的數(shù)據(jù)可以是數(shù)字,因子或字符類型
  • 每個(gè)列應(yīng)包含相同數(shù)量的數(shù)據(jù)項(xiàng)
1.創(chuàng)建數(shù)據(jù)幀

創(chuàng)建數(shù)據(jù)幀需要使用 data.frame()函數(shù) ,其語法如下

data.frame(data, row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())

參數(shù)解釋為:

  • data,表示輸入數(shù)據(jù)
  • row.names,NULL或單個(gè)整數(shù)或字符串,指定某列用作行名,或者一個(gè)字符或整型向量用作數(shù)據(jù)幀的行名
  • check.rows:,如果是TRUE,那么就檢查行長(zhǎng)度和名稱是否一致性
2.從數(shù)據(jù)幀中提取數(shù)據(jù)
  • 使用列名稱提取數(shù)據(jù),使用示例:
data_cut <- data.frame(emp.data$name_1,emp.data$name_2)
  • 使用切片方式提取數(shù)據(jù),使用示例:
#提取行數(shù)據(jù)
data_cut <- emp.data[1:2,]
#提取列數(shù)據(jù)
data_cut <- emp.data[,2:3]
3.擴(kuò)展數(shù)據(jù)幀
  • 添加列:直接使用 列名稱 即可添加數(shù)據(jù),示例如下:
emp.data$new_col = c('向量')
  • 添加行:一般需要使用 rbind()函數(shù)
    創(chuàng)建同樣的dataframe并使用該函數(shù)合并兩者
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 通常,在使用任何編程語言進(jìn)行編程時(shí),需要使用各種變量來存儲(chǔ)各種信息。變量只是保留值的存儲(chǔ)位置。這意味著,當(dāng)你創(chuàng)建一...
    D_MarsD閱讀 1,008評(píng)論 0 0
  • 數(shù)據(jù)類型變量不會(huì)聲明為某種數(shù)據(jù)類型。 變量分配有R對(duì)象,R對(duì)象的數(shù)據(jù)類型變?yōu)樽兞康臄?shù)據(jù)類型常用R對(duì)象類型矢量列表矩...
    yuanyb閱讀 722評(píng)論 0 0
  • 注意 在R中盡量使用 <- 進(jìn)行賦值, <- 更標(biāo)準(zhǔn)。在R中使用 = 進(jìn)行賦值可能會(huì)出現(xiàn)錯(cuò)誤(有些函數(shù)會(huì)將其解釋為...
    芒果芭樂閱讀 11,134評(píng)論 2 7
  • 1)這本書為什么值得看: Python語言描述,如果學(xué)的Python用這本書學(xué)數(shù)據(jù)結(jié)構(gòu)更合適 2016年出版,內(nèi)容...
    孫懷闊閱讀 12,941評(píng)論 0 15
  • 《R語言入門》的讀書筆記 本書的重點(diǎn)內(nèi)容及感悟: 第一章 導(dǎo)言 1、R是一個(gè)有著統(tǒng)計(jì)分析功能及強(qiáng)大作圖功能的軟件系...
    格式化_001閱讀 12,692評(píng)論 0 9

友情鏈接更多精彩內(nèi)容