首页 > 其他分享 >R数据分析:做量性研究的必备“家伙什”-furniture包介绍

R数据分析:做量性研究的必备“家伙什”-furniture包介绍

时间:2023-03-02 20:36:50浏览次数:50  
标签:数据分析 做量 函数 nhanes age table1 2010 变量 furniture

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函数可以快速实现一个数据集的多组宽转长操作,很方便的,大家摸索一下就可以发现它的好用了。

标签:数据分析,做量,函数,nhanes,age,table1,2010,变量,furniture
From: https://www.cnblogs.com/Codewar/p/17173361.html

相关文章

  • Python数据分析之财政收入影响因素分析及预测模型
     01-summary.py 1#-*-coding:utf-8-*-23#代码6-145importnumpyasnp6importpandasaspd78inputfile='../data/data.csv'#输......
  • 数据分析报告2
     用电预测:importpandasaspdimportmatplotlib.pyplotaspltdf_normal=pd.read_csv("C:/Users/admin/Documents/WeChatFiles/wxid_b0fz4hqogenr22/FileStorage/Fil......
  • 基于出租车GPS轨迹数据的研究:出租车行程的数据分析|附代码数据
    原文链接:http://tecdat.cn/?p=7553最近我们被客户要求撰写关于出租车GPS轨迹数据的研究报告,包括一些图形和统计输出。通过解析原始数据,得到模式如下所示数据 每次骑......
  • 数据分析——用户流失分析
     本文是对“用户流失原因”问题进行的思考整理,仅作记录,欢迎讨论。思维框架图版:文版:内部原因:1.数据验证先确认指标逻辑计算和数据提取是否存在问题;数据提取无误......
  • 用Python画数据分析第三章的图
    importpandasaspdcatering_sale="C:/Users/Lenovo/Desktop/catering_sale.xls"data=pd.read_excel(catering_sale,index_col=u'日期')print(data.describe())importm......
  • python数据分析绘图
    importpandasaspdcatering_sale='D:\计算机网络\catering_sale.xls'data=pd.read_excel(catering_sale,index_col='日期')print(data.describe())    ......
  • 用python画数据分析第三章的图
    importpandasaspdcatering_sale=(r'D:\sjfx\catering_sale.xls')data=pd.read_excel(catering_sale,index_col='日期')print(data.describe())  importmatplotli......
  • 第一周 python数据分析与挖掘技术实战 第三章
    总结 ............. 图3-1 importpandasaspdcatering_sale='catering_sale.xls'data=pd.read_excel(catering_sale,index_col=u'日期')print(data.descri......
  • 数据分析
    importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltpath='./data/catering_sale.xls'data=pd.read_excel(path,index_col=u'日期')#读取......
  • python数据分析画图
    importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltpath='./data/catering_sale.xls'data=pd.read_excel(path,index_col=u'日期')#读取......