R base, Advanced - matrix data frame operation

#1.1####
rm(list=ls())
age <- c(1,3,5,2,11,9,3,9,12,3)
weight<-c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
mean(weight)
sd(weight)
cor(age,weight)
plot(age,weight)

#matrix####
a<-matrix(1:20,nrow = 4,ncol = 5);a
cells<-c(1,26,24,68)
rnames<-c("R1","R2")
cnames<-c("C1","C2")
mymatrix1<-matrix(cells,nrow = 2,ncol = 2,
                  byrow = FALSE,
                  dimnames = list(rnames,cnames));mymatrix1
mymatrix2<-matrix(cells,nrow = 2,ncol = 2,
                  byrow = TRUE,
                  dimnames = list(rnames,cnames));mymatrix2
x<-matrix(1:20,nrow = 2)
x
x[2,]
x[,3]
x[2,5]
x[1,c(4,5)]  
x[,c(4:7)]

#array####
dim1<-c("A1","A2")
dim2<-c("B1","B2","B3")
dim3<-c("c1","c2","c3","c4")
mnarray<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3))
View(mnarray)

#data frame####
patientID<-c(1,2,3,4)
age<-c(25,34,28,52)
diabetes<-c("TYPE1","TYPE2","TYPE1","TYPE1")
status<-c("Poor","Improved","Excellent","Poor")
patientdata<-data.frame(patientID,age,diabetes,Status) 
patientdata [. 3:. 4]
patientdata [,. 1: 2 ]
rownames (patientdata) <- C ( 'A', 'B', 'C', 'D')
fix (patientdata) # of changes in relation stored in dataframe
Edit (patientdata) # temporarily modify
patientdata [C ( "Diabetes", "Status")] 
patientdata $ Status 

Table (patientdata $ patientID, patientdata $ Age) # Cross Validation 
Summary (patientID) 
Summary (Age) 
COR (Age, patientID) 
CoV (Age, patientID) 
Plot (patientdata $ Age, patientdata $ patientID) 
The attach (CO2) 
Edit (CO2) 
Plot (uptake, CONC) 
the detach (CO2) 

head (mtcars) 
with (mtcars, {# with (the Data, {expression The}) benefits are not used frequently $ DataName 
  Print (Summary (MPG)) 
  Plot (MPG, DISP) 
  Plot (MPG, wt) 
  } 
) 
with (mtcars, 
     Print (Summary (MPG)) 
) 
with (mtcars, { 
  nokeepstats <(MPG -summary) within #with name the new variable must use << -
  keepstats<<-summary(mpg)})  
keepstats                  
nokeepstats

status<-factor(status,order=TRUE)
diabetes<-factor(diabetes)
class(status)
ls(patientdata)
patientdata<-data.frame(patientID,age,diabetes,status)
str(patientdata) # show data `s structure
summary(patientdata)

status<-factor(status,ordered = TRUE,
               levels = c("Poor","Improved","Excellent"))

sex<-c("1","2","2","1")
sex<-factor(sex,levels = c(1,2),labels = c("male","female"))
#list####
g<-"my list"
h<-c(25,26,18,39)
j<-matrix(1:20,nrow = 2)
k<-c("one","two","three")
mylist<-list(title=g,ages=h,j,k)
mylist
mylist[[3]]
mylist[["ages"]]

#create new variate and recode rename
manager<-c(1,2,3,4,5)
date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
country<-c("M","F","F","M","F")
age<-c(32,45,25,39,99)
q1<-c(5,3,3,3,2)
q2<-c(4,54,4,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,age,q1,q2,q3,q4,q5,
                       stringsAsFactors = FALSE)

leadership$age[leadership$age==99]<-NA
leadership$agecat[leadership$age>75]<-"elder"
leadership$agecat[leadership$age<=75&
                    leadership$age>=55]<-"middle aged"
leadership$agecat[leadership$age<55]<-"young"
#or
leadership<-within(leadership,{
  ageact<-NA 
  ageact[age>75]<-"elder"
  ageact[age>=55&age<=75]<-"middle aged"
  ageact[age<55]<-"yough"})

leadership<-within(leadership,{ 
  grade<-NA
  grade[q1>3]<-"good"       #常用语修改dataframe时不用频繁使用dataframe$
  grade[q1<=3]<-"bad"})    #compare 'with' at 64 with 'within'

#修改行名、列名
names(leadership)[2] <- 'testdate'  #列名
names(leadership)
row.names(leadership)              #行名
install.packages("plyr")
library(plyr)
rename(leadership,c(manager="managerID"))

#datetime####

Sys.Date()  

date() 

mydate<-as.Date(c("2018-01-12","2008-01-11"))  #must be default format
mydate
class(mydate)

#or####
strdate<-c("2018/01/12","2008/01/12")# character
dates<-as.Date(strdate,"%Y/%m/%d") # Date#,default format
dates
manager<-c(1,2,3,4,5)
date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
country<-c("M","F","F","M","F")
age<-c(32,45,25,39,99)
q1<-c(5,3,3,3,2)
q2<-c(4,5,4,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,age,q1,q2,q3,q4,q5,
                       stringsAsFactors = FALSE) 
#format ####

myformat<-'%m/%d/%y'  
leadership$date<-as.Date(leadership$date,myformat)  ;leadership$date    
class(leadership$date) 
View(leadership)

date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
date<-as.Date(date,"%m/%d/%y");date     
format(date,format="%m-%d-%Y")   #修改时间显示格式
format(date,format="%m/%d/%Y")     
#or
today<-Sys.Date()
format(today,format="%a")

format(today,format="%A")

startdate<-as.Date(today)
endate   <-as.Date("1994-01-21")
days     <-endate-startdate ;days 
# difftime
today<-Sys.Date()
anniversary<-as.Date("2012-10-29")
difftime(today,anniversary,units = "days")
9145/365
today<-as.character(today)
today    
#more  <{ help("as.Date")!"help("strftime"),package(timeDate)

#order####
rm(list = ls())
manager<-c(1,2,3,4,5)
date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
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,4,4,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)

newdata<-leadership[order(-leadership$age),];newdata 
newdata<-leadership[order(leadership$age),] ;NewData 
NewData <-leadership [Order (Gender, Age),]; the reordering newdata # Sex
the attach (withleadership)
#OR
newdata1<-leadership[order(gender,-age),];newdata1
detach()


# merge dataset ####
rm(list = ls())
manager<-c(1,2,3,4,5)
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,4,4,3,2)
leadership1<-data.frame(manager,country,gender,age,q1,q2,
                        stringsAsFactors = FALSE)

manager<-c(1,2,3,4,5)
date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
q3<-c(5,2,5,4,1)
q4<-c(5,5,5,NA,2)
q5<-c(5,5,2,NA,1)
leadership2<-data.frame(manager,date,q3,q4,q5,
                        stringsAsFactors = FALSE)

View(leadership1)
View(leadership2)
total<-merge(leadership1,leadership2,by="manager")

total<-cbind(data.frame(leadership1),data.frame(leadership2))
View(total)

#subset####
rm(list = ls())
manager<-c(1,2,3,4,5)
date<-c("10/24/14","10/28/14","10/01/14","10/02/14","05/01/14")
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,4,4,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)

leadership["q1"] 

newdata<-leadership[,6:10];newdata
newdata1<-leadership[,c(6:10)];newdata1
#or 
mycars<-c("q1","q2","q3","q4","q5")
newdata2<-leadership[mycars];newdata2
#or
mycars1<-paste("q",1:5,sep="")
newdata3<-leadership[mycars1];newdata3

mycars2<-names(leadership)%in%c("q3","q4");mycars2
newdata4<-leadership[!mycars2];newdata4
#or
newdata5<-leadership[c(-8,-9)];newdata5
#or
leadership$q3<-NULL
leadership$q3<-leadership$q4<-NULL

newdata<-leadership[1:3,] ;newdata 
newdata<-leadership[,1:3]  ;newdata
#or
newdata<-leadership[leadership$gender=="M"&
                      leadership$age>30,];newdata
#or
attach(leadership)
newdata<-leadership[gender=="M"&age>30,]
detach(leadership)

leadership$date<-as.Date(leadership$date,"%m/%d/%y")
startdate<-as.Date("2014-10-02")
enddate<-as.Date("2014-10-25")
newdata<-leadership[which(leadership$date>=startdate&leadership$date<=enddate),];newdata

#4-10-4 subset()####
newdata <-subset(leadership,age>30&gender=="M",
                select = c(q1,q2,q3,q4))  
newdata6<-subset(leadership,age>30&age<50,select = c(q1:q5));newdata6
newdata7<-subset(leadership,age>50|age<30,select = gender:q1) ;newdata7

mysample<-leadership[sample(1:8,size = 3,replace = TRUE)];mysample #samples random column
patientID<-c(1,2,3,4)
age<-c(25,34,28,52)
diabetes<-c("TYPE1","TYPE2","TYPE1","TYPE1")
status<-c("Poor","Improved","Excellent","Poor")
status<-factor(status,order=TRUE)# 
diabetes<-factor(diabetes)
class(status)
ls(patientdata)
patientdata<-data.frame(patientID,age,diabetes,status)
mysample<-patientdata[sample(1:ncol(patientdata),size = 3,replace = FALSE)];mysample

nrow(leadership)

#chapter 3####
attach(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt))    #adds a line of best fit
title("regression of mpg on weight")
detach(mtcars)

pdf("mygraph.pdf")
attach(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt))    #adds a line of best fit
title("regression of mpg on weight")
detach(mtcars)
dev.off()

  

Guess you like

Origin www.cnblogs.com/super-yb/p/11041419.html