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