叫別人建個(gè)網(wǎng)站多少錢廣州 競(jìng)價(jià)托管
目錄
一、數(shù)據(jù)轉(zhuǎn)換
二、取子集
三、數(shù)據(jù)框的翻轉(zhuǎn)
四、對(duì)數(shù)據(jù)框進(jìn)行計(jì)算
五、apply的用法?
六、數(shù)據(jù)的中心化與標(biāo)準(zhǔn)化?
七、參考
一、數(shù)據(jù)轉(zhuǎn)換
讀取文件
a <- read.csv('test.csv', header = T)
判斷讀取的類型
class(a)
is.data.frame(a)
強(qiáng)制格式轉(zhuǎn)換數(shù)據(jù)框格式
as.data.frame(a)
強(qiáng)制轉(zhuǎn)換為矩陣格式,每個(gè)元素都為一個(gè)字符串
as.matrix(data.frame(a))
查看判斷數(shù)據(jù)類型及格式轉(zhuǎn)換方法
methods(is) 和 methods(as)
給向量添加一個(gè)維度就會(huì)變成矩陣或者數(shù)組
二、取子集
如何對(duì)數(shù)據(jù)框取子集
View(b)可以查看數(shù)據(jù)框
使用切片取連續(xù)子集
取不連續(xù)子集
使用 which 進(jìn)行邏輯篩選
這里的? “? ,”是取行
subset() 可以對(duì)向量、矩陣、數(shù)據(jù)框取子集
sample(x, n) :無(wú)放回抽樣, 每個(gè)元素只能抽取一次
設(shè)置replace = T,則是有放回抽樣
對(duì)數(shù)據(jù)框進(jìn)行抽樣
數(shù)據(jù)框的合并
data.frame(state.abb, state.area)
cbind(state.abb,state.area):合并列
rbind(state.abb,state.area):合并行要求新數(shù)據(jù)與原數(shù)據(jù)具有相同的列名
cbind,rbind也可以用于矩陣
要求是必須具有相同的行數(shù)或列數(shù)
如果合并的數(shù)據(jù)有重復(fù)項(xiàng)應(yīng)該怎么處理呢
下圖可以看到,51-101是重復(fù)項(xiàng)
duplicated(data3):判斷是否為重復(fù)項(xiàng)
可以取出重復(fù)項(xiàng),加 “? !”可以取反
使用 unique() 可直接完成去重操作
使用 length(rownames()) 和 length(colnames()) 可以查看行數(shù)和列數(shù)
三、數(shù)據(jù)框的翻轉(zhuǎn)
t():數(shù)據(jù)框翻轉(zhuǎn)
> data4<- t(data)
rev():反向
修改數(shù)據(jù)框中的值
transform(data, colname)
colname命名新的名字,則會(huì)生成新的一列
數(shù)據(jù)框排序
sort是對(duì)向量進(jìn)行排序,返回排序后的結(jié)果
order也可以對(duì)向量進(jìn)行排序,返回的是對(duì)應(yīng)值所在的位置,而不是結(jié)果?
order可以根據(jù)索引對(duì)數(shù)據(jù)框進(jìn)行排序
取與 order 默認(rèn)相反的順序
在變量前加一個(gè) “ - ”
rank是求秩的函數(shù)
返回向量對(duì)應(yīng)元素的排名
四、對(duì)數(shù)據(jù)框進(jìn)行計(jì)算
將矩陣轉(zhuǎn)為數(shù)據(jù)框
rowSums 計(jì)算行和
colMeans 計(jì)算列均值
將計(jì)算的行和 和 列均值添加到 原數(shù)據(jù)框 中
可以看到,cm 行 Total 列被第一列的值替代
五、apply的用法?
apply(x,MARGIN,FUN)
x是數(shù)組、矩陣或數(shù)據(jù)框;MARGIN等于1代表行,等于2代表列;FUN代表要應(yīng)用的函數(shù)。
如:
apply(WorldPhones,MARGIN=1,FUN = sum)
apply(WorldPhones,MARGIN=2,FUN = mean)
apply(WorldPhones,MARGIN=2,FUN = Var)
apply(WorldPhones,MARGIN=2,FUN = log)
其他apply系列函數(shù)
lapply(x,FUN):l 代表list,x是列表,返回值是列表。
sapply(x,FUN):s代表simplify,x是列表,返回值是向量或者矩陣。
tapply(x,INDEX,FUN):x是向量或其他,INDEX是一組因子,利用這個(gè)因子,可以對(duì)第一個(gè)參數(shù)的數(shù)據(jù)進(jìn)行分組。
六、數(shù)據(jù)的中心化與標(biāo)準(zhǔn)化?
數(shù)據(jù)中心化:是指數(shù)據(jù)集中的各項(xiàng)數(shù)據(jù)減去數(shù)據(jù)集的均值。
數(shù)據(jù)標(biāo)準(zhǔn)化:是指在中心化之后再除以數(shù)據(jù)集的標(biāo)準(zhǔn)差,即數(shù)據(jù)集中的各項(xiàng)數(shù)據(jù)減去數(shù)據(jù)集的均值再除以數(shù)據(jù)集的標(biāo)準(zhǔn)差。
簡(jiǎn)單來(lái)看:?
x <- c(1,2,3,6,3)
中心化:x-mean(x)
標(biāo)準(zhǔn)化:(x-mean(x))/sd(x)R中實(shí)現(xiàn)數(shù)據(jù)中心化和標(biāo)準(zhǔn)化可以使用scale函數(shù):
scale(x,center,scale):center為TRUE就是做中心化處理,scale為TRUE就是做標(biāo)準(zhǔn)化處理。
七、參考
R語(yǔ)言入門與數(shù)據(jù)分析