In conjunction with many other tidy tools, the package should be useful for health, behavioral, and social scientists working on quantitative research.
今天学习别人的代码,看到将table1和tidyr一起写出来的代码真的太方便太简洁了。而且看到furniture这个包就是开发出来给医学和社会科学的量性研究者用的,这不正对胃口嘛,于是整理一下furniture包的一些知识,分享给大家。
首先的感觉就是这个包很简洁,包的函数主要就只有8个,但和tidyverse结合起来的效果真的方便,包的名字翻译过来就叫做“家具”,家具就是为了让家庭生活更舒服的嘛,这个包就是为了让health, behavioral, and social scientists的数据分析做起来更舒服的,用起来也确实舒服。接下来就给包中的重要函数做个简单介绍:

table1
table1和之前写过的tableone作用一样,但是比tableone用起来更简单。同时这个函数也是这个包最重要的函数:
Table 1 is the main function in furniture. It is useful in both data exploration and data commu-
nication.With minimal cleaning, the outputted table can be put into an academic, peer reviewed journal manuscript. As such, it is very useful in exploring your data when you have a stratifying variable
比如对于数据集nhanes_2010,我想描述age, marijuana, illicit, rehab这四个变量,就可以写出如下代码:
nhanes_2010 %>% table1( age, marijuana, illicit, rehab, na.rm = FALSE)
输出如下:

再结合group_by函数或者splitby参数就可以实现变量的分组描述,比如我用asthma变量对样本进行分组后再描述相应变量,代码和对应输出如下:
nhanes_2010 %>% table1( age, marijuana, illicit, splitby=~asthma, na.rm = FALSE)
结合test和type参数可以很方便的报告组间比较的结果,这个结果是包括相应统计量和对应p值的,这一点就比tableone就好用多了,例子见下:
nhanes_2010 %>% table1( age, marijuana, illicit, splitby=~asthma, test = TRUE, type = "full", na.rm = FALSE)
并且上面的所有的结果展示的表格都可以结合很多别的参数使用,比如现在展示的例子都是将NA作为变量水平展示出来的,我们可以用na.rm设置为TRUE就可以将NA拿掉;还有我们展示的例子都是分组后算的组内变量的各个水平的占比,我们也可以加上row_wise = TRUE,参数算某个变量的组间构成比例,代码和示例如下:
nhanes_2010 %>% group_by(asthma) %>% table1(age, marijuana, illicit, rehab, output = "text2", na.rm = F, test = TRUE, total = TRUE,row_wise = TRUE, type = "full")
还有,table1帮助我们做表的时候我们可以方便地改变量名,不需要去动原始数据的那种方便,比如我现在代码中描述了4个变量,这4个变量在数据库中的名字为age, marijuana, illicit, rehab,做表的时候我想改一下,我就可以用“新名字”=旧名字的格式进行改动,例子如下:
nhanes_2010 %>% group_by(asthma) %>% table1( '请'=age, "持续"=marijuana,'关注'= illicit,'codewar'= rehab, na.rm = FALSE)
变量名改动后输出如下:

真的很方便哈,table1函数结合export参数可以将结果输出为csv,“latex”,“markdown”,“pandoc”等文件类型,写论文用起来就是直接粘贴的事,如果你用markdown写就更方便,同学们平时一定用起来。
tableC
tableC可以很方便地输出相关分析的结果表格,比如我要做age, active, vig_active这三个变量的相关,我就可以写出如下代码:
nhanes_2010 %>% tableC( age, active, vig_active, na.rm=TRUE)
很简单,结果中相关系数和p值就都有了:

上面介绍的两个函数对论文写作帮助是非常大的,还有一个函数叫做tableF可以给到我们变量的频数和累计频数,这个我们一般不太用得到。
washer
washer函数可以帮助我们将多余的变量水平洗脱掉,什么意思呢,比如我们现在的数据中777和999都是表示NA的,这个时候我们用mutate结合if_else或者case_when函数将其变为NA,但其实挺麻烦的,或者考虑replace函数,但是这个函数灵活性也不够,对比起来washer函数还是一个非常好用的工具。
比如,大家先看数据中原来age这变量的频数:

可以看到age为18的有191个人,然后还有19到30岁的,这个时候我突然想将18岁以上的全部归为一个组叫做“>18”,我就可以用washer函数写代码:
nhanes_2010 %>% mutate(age=washer(age,19:30,value = '>18')) %>% tableF(age)
可以看到结果中除了18之外的所有取值都成了>18,这个就很很方便,当然上面这个例子用ifelse也很方便,如果age是一个分类变量,且这个分类变量取值很多的情况下,这个washer函数才是最方便的选择。
rowmeans
很多时候我们需要按行求变量的和或者均值,这个时候可以用到rowmeans() and rowsums()
示例如下图:

也很方便简洁,同时还有long和wide两个函数可以方便地帮助我们进行数据的长宽转换,其中long函数可以快速实现一个数据集的多组宽转长操作,很方便的,大家摸索一下就可以发现它的好用了。
小结
今天给大家介绍了furniture包,很简单,算是水了一篇推送,不过里面的table1和washer函数还是很值得掌握的,平时写代码的时候要想得起来用,感谢大家耐心看完,自己的文章都写的很细,重要代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先记得收藏,再点赞分享。
也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,有疑问欢迎私信,有合作意向请直接滴滴我。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、模型构建,科研统计设计等发愁,如果你在使用SPSS, R,Mplus中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。
如果你或你的团队需要专业的科研数据清洗,建模服务,教学培训需求等等。请联系我。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
If You or Your Research Team Need Professional Scientific Data Cleaning, Model Building Services or Statistical Consulting... Please Contact Me.