一、建立新變量函數
方式 一:常規方式,用已有變量組合新變量;編碼
方式二:使用 attach()函數,不用再帶數據框變量名;spa
方式三:使用 transform()函數,按需建立變量,並將其保存到數據框中orm
mydata<- transform(mydata, sum= x1 + x2, mean = (x1 + x2)/2 )對象
二、變量重編碼排序
leadership<- within( leadership,{ip
agecat<- NA字符串
agecat[age>75] <- "Elder"數據分析
agecat [age>=55 && age<= 75] <- "Middle Aged"it
agecat [age<55] <- "Young"
})
三、變量重命名
names()函數:
names ( leadership) [2] <- "testDate" :將 leadership 數據框的第二列重命名。
批量方式:
names (leadership)[6:10] <- c( "item1", "item2", "item3", "item4", "item5" ) :將 leadership 數據框的第6到第10列依次重命名爲 "item1", "item2", "item3", "item4", "item5"
plyr 包中的 rename () 函數進行重命名: rename(dataframe, c(oldname="newname", oldname="newname",...))
四、缺失值
在數據分析以前,確保把全部的缺失數據重編碼爲 缺失值,不然分析結果將失去意義。含有缺失值的算術表達式和函數計算的結果也是缺失值。
NA:Not Available 不可用
NaN:not a number【is.nan()來判斷】
Inf 和 -Inf:正無窮和負無窮 5/0= Inf 【is.infinite()來判斷】
is.na(object):返回一個相同大小的對象
is.na( leadership[ , 6:10]) 判斷 leadership 第6至10列的缺失值狀況 ,返回的是一個 5 列的對象
刪除缺失值:
(1)y<- sum( c(1,2, NA, 3), na.rm=TRUE)
(2)na.omit()刪除全部含有缺失值 的行: newData <- na.omit(dataFrame)
五、類型轉換
向一個數值類型向量中添加一個字符串會將向量中全部元素轉換爲字符型 。
is.numeric() as.numeric()
is.character() as.character()
is.vector() as.vector()
is.matric() as.metric()
is.data.frame() as.data.frame()
is.factor() as.factor()
is.logical() as.logical()
六、數據排序
order()函數可對數據框進行排序,默認 升序,變量前加「-」號可變成降序。
newData <- leadership(order( leadership$gender, -leadership$age))
七、數據集合並
(1)添加列
A:使用 merge()函數: total <- merge(dataFrameA, dataFrameB, by= c("ID", "Country") ) 至關於經過 ID, Country 進行內聯結進行合併;
B:相同行數的數據框 可經過 cbind(A, B)進行合併
(2)添加行
使用 rbind()函數,要求兩個數據框的列變量必須相同,順序不作要求。若是某個數據框中有多餘的列,合併前需先刪除多餘的列,或者在少的那個數據框中增長列,並將其值設置爲NA。