R
删除空间已有值
rm(list=ls())
变量重新编码
df a g e [ d f age[df age[dfage>75]<-“Elder”
缺失值
is.na()
newdata <- na.omit(df)
列重命名
names(df)[2]<-‘testdate’
dplyr
转换
- ds<-tbl_df(mtcars)
- df<-as.data.frame(ds)
- tbl_df()可用于将过长过大的数据集转换为显示更友好的 tbl_df 类型。使用dplyr包处理数据前,建议先将数据集转换为tbl对象。
filter
- filter() 和slice()函数可以按给定的逻辑条件筛选出符合要求的子数据集, 类似于 base::subset() 函数,但代码更加简洁, 同时也支持对同一对象的任意个条件组合(表示AND时要使用&或者直接使用逗号),返回与.data相同类型的对象。原数据集行名称会被过滤掉。
- filter(mtcars,cyl<5 &vs==1)
- filter(mtcars,cyl %in%c(4,6)) #cyl=4 6的行
- slice(mtcars, 5:n()) #第5行到最后一行
- mydata11 <- filter(mydata, Index %in% c(“A”, “C”)) #%in%运算符可用于选择多个项目。 在下面的程序中,我们告诉R选择Index列中的’A’和’C’行。
- mydata14 <- filter(mydata, grepl(“Ar”, State)) #grepl 在state列中搜索包含“Ar”
arrange()
- arrange(mtcars,cyl,disp)
- 类似order()
- arrange(mtcars,desc(disp))
selet()
- select(iris,start_with(“petal”))
- select(iris,-start_with(“petal”))
- 包括starts_with,ends_with,contains,matches,one_of,num_range和everything等,筛选列
mutate()
- Subtopic 1
- mutate()和transmute()函数对已有列进行数据运算并添加为新列,类似于base::transform() 函数, 不同的是可以在同一语句中对刚增添加的列进行操作。mutate()返回的结果集会保留原有变量,transmute()只返回扩展的新变量。原数据集行名称会被过滤掉。 增加列
- mutate(mtcars,wt_kg=wt*453.592,wt_t=wt_kg/1000)
distinct()
- 去重 类似unique()
- distinct(df,df c 1 , d f c1,df c1,dfc2,.keep_all=T)
sample_n()
- sample_n(mtcars,10,replace=TRUE) #有重复的取50行
- sample_frac(mtcars,0.1) # 无重复 取0.1数据
group_by()
- by_cyl<-group_by(mtcars,cyl)
summarise()
- summarise(mtcars, max(disp), min(disp))
- summarise_at(mydata, vars(Y2005, Y2006), funs(n(), mean, median))
- summarise_if(mydata, is.numeric, funs(n(),mean,median))
- summarise_all(mydata[“Index”], funs(nlevels(.), nmiss=sum(is.na(.)))) #检查分类(因子)变量中的级别/类别数量和缺失观察数量。
t <- summarise_at(group_by(mydata, Index), vars(Y2011, Y2012), funs(n(), mean(., na.rm = TRUE)))或
t <- mydata %>% group_by(Index) %>%
summarise_at(vars(Y2011:Y2015), funs(n(), mean(., na.rm = TRUE)))
#通过变量Index计算变量Y2011和Y2012的变量的计数和均值。
join()
- semi_join(df1, df2, by = c(“CustomerId” = “CustomerId”))
- inner_join() full_join()
- semi_join() anti_join()
- left_join() right_join()
ifelse
- if_else(condition,true, false, missing = NULL)
bind
- bind_row()
- bind_cols()
- combine()
set
- intersect() #交集
- setdiff()
%>% 管道
# 对数据进行分布处理:分组-汇总-排序-打印
tbl_hflights %>%
group_by(UniqueCarrier) %>%
summarize(m = mean(AirTime,na.rm = TRUE), sd = sd(AirTime,na.rm = TRUE)) %>%
arrange(desc(m),sd) %>%
head(10)
工作路径
setwd(‘c:/myr’)
getwd()
查看数据
str(df)
- structure
summary(df)
is.na()
- sapply(pbc,function(x) sum(is.na(x)))
排序
- newdata<-df[order(df$age),]
- newdata <-df[order(df s e x , − d f sex,-df sex,−dfage)]
数据类型
var<- c(1,2.5,4.5)
var<-c(“hello”,“world”)
x<-list(1:3,“a”,c(TRUE,FALSE),list(2.3,5))
df<-data.frame(x=1:3,y=c(“a”,“b”,“c”),z=0)
- dfname[1,1]
- dfname[1,]
- dfname[,‘y’]
- dfname$y
转换
- as.vector()
- as.data.frame()
- as.matrix()
包
install.packages(“plyr”)
update.packages()
factor
sex<-c(‘m’,‘f’,‘m’)
sex_factor<-factor(sex,levels=c(‘m’,‘f’))
full P c l a s s < − a s . f a c t o r ( f u l l Pclass<-as.factor(full Pclass<−as.factor(fullPclss)
data s e x < − f a c t o r ( d a t a sex <-factor(data sex<−factor(datasex,levels=c(0,1),labels=c(“M”,“F”))
IO
read.xlsx() 或 read.xlsx2()
df<-read.csv(‘c:/myr/data.csv’,header=TRUE,sep=’,’)
stata
- library(haven)
df<-read_stata(‘CFPS.dta’)
spss
- write_sav(data.frame(df),‘df.sav’)
rds
- saveRDS(df,df=‘df.rds’)
结果输出
https://www.jianshu.com/p/1ece127239ed
xtable flextable
合并
full<-bind_rows(train,test)
添加列
- total<-merge(dfA,dfB,by=c(“ID”,“Country”))
- cbind
添加行
- total<- rbind(dfA,dfB)
lm
model<-lm(TestC~Age+relevel(Sex,“M”)) #哑变量
model<- lm(TestC~Agerelevel(Sex,“M”)) #AB=A+B+A:B
model1<-lm(TestC~Age+Age:relevel(Sex,“M”))
筛选
newdata<- subset(df, age>35 | age<24,select=c(q1,q2,q3,a4))
newdata <- subset(df,sex==“M” & age>20, select=sex:q4)
mysample<- df[sample(1:nrow(df),3,replace=FALSE),] #抽取三个样本
剔除列
- myvar<-names(df) %in% c(“q3”,“q4”)
newdata<-df[!myvar] - newdata<-df[c(-8,-9)] #剔除第8 9个变量
删除重复的行
-
mydata %>% dplyr::distinct(c1,c2, .keep_all=TRUE)
- dplyr
-
df[!duplicated(df[,c(2,3)]),]
建议用dplyr
lm
confint(lm.reg,level=0.95) #置信区间
summary(fit)$coefficients
coef(model)[2]
画图
XMind - Trial Version