R 基本資料管理

2021-06-18 16:54:42 字數 3429 閱讀 4145

manager<-c(1,2,3,4,5)

date<- c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")

country<-c("us","us","uk","uk","uk")

gender<-c("m","f","f","m","f")

age<-c(32,45,25,39,99)

q1<-c(5,3,3,3,2)

q2<-c(4,5,5,3,2)

q3<-c(5,2,5,4,1)

q4<-c(5,5,5,na,2)

q5<-c(5,5,2,na,1)

leadership<-data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5,stringsasfactors=false)

#常用算術操作說明

# + 加法

# - 減法

# * 乘法

# / 除法

# ^或** 求冪

# x%%y 求模

# x%/%y 整除

#常用比較操作

# < 小於

# <= 小於等於

# > 大於

# >= 大於等於

# == 等於比較

# != 不等比較

# x|y x或y

# x&y x和y

# istrue(x) 測試x是否為true

#操縱日期

# %d 日期

# %a 星期

# %a 星期(非縮寫)

# %m 月份(數字)

# %b 縮寫的月份(英文)

# %b 月份(非縮寫英文)

# %y 年份

# %y 四位年份

mydate<- as.date(c("2007-06-22","2004-02-13")) #字串轉日期物件

datestr<- c("2007-06-22","2004-02-13")

mydate2<- as.date(datestr,"%m/%d/%y") #字串轉日期物件

sys.date() #獲得當前日期

date() #獲取當前日期和時間

strd <- as.character(sys.date())

#熟悉資料型別的轉換

# is.numeric() as.numeric()

# is.character() as.character()

# is.vector() as.vector()

# is.matrix() as.matric()

# is.data.frame() as.data.frame()

# is.factor() as.factor()

# is.logical() as.logical()

#變數的建立和重編碼

#建立新變數

mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8))

#method1:

mydata$sumx<-mydata$x1 + mydata$x2

mydata$meanx<-(mydata$x1 + mydata$x2)/2

#method2:

attach(mydata)

mydata$sumx<- x1 + x2

mydata$meanx <- (x1+x2)/2

detach(mydata)

#method3:

mydata <- transform(mydata,sumx=x1+x2,means=(x1 + x2)/2)

#method4:

leadership <- within(leadership,)

#重編碼: 變數重新賦值

leadership$age[leadership$age == 99] <- na #將年齡為99的人員資料置為空

leadership$age[leadership$age < 30] <- "younger" #將年齡小於30的置為yonger

#變數重新命名

#rename(datafarme,c(oldname="newname",oldname="newname",...))

library(reshape)

leadership<-rename(leadership,c(manager="managerid",date="testdate"))

#也可以

names(leadership)[2]<-"testdata2"

leadership

names(leadership) #檢視有哪些變數

#資料集排序、合併、提取

#排序newdata<- leadership[order(leadership$age),] #排序 預設是公升序

#降序必須這麼寫

attach(leadership)

newdata<-leadership[order(-age),]

detach(leadership)

#集合合併

total <- merge(dataframea,dataframeb,by=c("id","***"))

total <- cbind(a,b) # 直接合併資料庫或矩陣

#提取newdata<- leadership[,c(6:10)]

#或myvars <-c("q1","q2")

newdata <- leadership[myvars]

#變數的選入和丟棄

#選擇變數

myvars<- names(leadership) %in% c("q3","q4") #找打名字包含 q3\q4的變數

#變數丟棄

newdata<- leadership[!myvars] #!表示邏輯非

newdata

#值的缺失檢查

y<-c(2,3,5,na)

is.na(y) #return : c(false,false,false,true)

#na是不可比較的,即使是同其他缺失值也如此

#計算時缺失值的排除

x<-c(1,2,na,3)

y<-sum(x,na.rm=true)

#去掉缺失項(整個變數都會去掉)

leadership

newdata<-na.omit(leadership)

newdata

利用R語言進行基本資料管理

建立leadership資料框 manager c 1,2,3,4,5 date c 10 24 08 10 28 08 10 1 08 10 12 08 5 1 09 country c us us uk uk uk gender c m f f m f age c 32,45,25,39,99 ...

R語言實戰學習筆記(三)基本資料管理

在乙個資料框裡面加入新的變數的方法有三種,第一種是直接 引用新增,一種是用attach detach 第三種是用transform 函式。具體例子如下 mydata裡面已經存在x1和x2兩個變數 方法一 mydata sumx mydata x1 mydata x2 mydata meanx myd...

第四章 基本資料管理

將leadship資料集中經理人的年齡變數age重編碼為類別型變數 leadership within fix leadship 互動的方式修改變數的名稱 reshape內的rename函式 ibrary reshape leadership c manage mamanageid data tes...