学习小组day6---liull

今天学到了一个有意思的包,tidyr,方便进行数据的集合和转制用的。虽然我知道在R中的行列转制可以利用t(数据名)进行直接转制。是一个十分强大的函数。可以来实践一下
1:先生成一个数据框

b <- data.frame(country = c("A","B","C"),"1999" = paste(c(0.7,37,212),"K"),"2000" = paste(c(2,8,213),"k"))
b的data frame结果图

但是在敲这个代码的时候,发现了一个bug,归根还是"<-" "="没搞明白

b <- data.frame(country <-c("A","B","C"),"1999" <- paste(c(0.7,37,212),"K"),"2000" <- paste(c(2,8,213),"k"))
学习小组day6---liull_第1张图片
生成了错误的数据框

在利用t()函数进行转制的时候,写上转制的代码和结果

t(b)
转制完成的数据框,行和列进行了转制

-------------------------------------------------------分割线----------------------------------------------
在这个包中,主要是用2个函数
gather()
spread()
首先先建立一个数据集,利用gather函数,先进行转换

a <- data.frame(country=c("A","B","C"),"1999"=(c(0.7,37,212),"k"),"2000"=(c(2,80,234),"K"))
gather(a,"year","value",X1999,X2000)
gather(b,year,value,-country)
#这个是除去country之后的效果
学习小组day6---liull_第2张图片
gather后的结果,虽然底下有一个warning message

学习小组day6---liull_第3张图片
gather的另一个结果

二:处理缺失值
有三种方法,第一种是直接删除用drop()
第二种是利用上下面的数值猜测一个fill()
第三种是利用同一列的空值填上一个同一个数,replace_na(data,replace=list,.....)
1,首先先生成一个含有缺失值的数据框

f<-gather(b,"year","value",X1999,X2000)
f[2,3]<- NA
fill(f,value)
drop_na(f,value)
replace_na(f,list(value=2))
学习小组day6---liull_第4张图片
fill和drop_na的结果

学习小组day6---liull_第5张图片
replace_na的结果

发现在list里面,替换的值为数字,不能为字符串
三:complete函数,gather和fill的集合,因为nest的本意有嵌套的意思。nesting里面是什么变量,那么这个变量就是fct因素,其他的因变量。并且可以把空值补全了。


学习小组day6---liull_第6张图片
complete函数运行结果

四:expand函数

列出每列值所有可能的组合,类似于排列组合?
expand(f,country,year,value)


学习小组day6---liull_第7张图片
expand结果

五:unit函数
unite(f,year,value,col="year",sep="")

实现对列的一个合并


学习小组day6---liull_第8张图片
unit的合并

学习小组day6---liull_第9张图片
R---tidyr的学习.png

你可能感兴趣的:(学习小组day6---liull)