统计分析方法R data manipulateR for statistics

R for Data Science(笔记) ---数据整理(分

2021-07-17  本文已影响0人  生信小鹏
R for Data Science
R for Data Science

想了一下还是做一个笔记目录,这样能够方便查询

R for Data Science(笔记) ---数据变换(filter使用)
R for Data Science(笔记) ---数据变换(select基础使用)
R for Data Science(笔记) ---数据变换(select组合其他函数)
R for Data Science(笔记) ---数据变换(创建新的变量)
R for Data Science(笔记) ---数据变换(行排序)
R for Data Science(笔记) ---数据变换(归纳总结)
R for Data Science(笔记) ---数据整理(Pivot相关函数)

tidy流处理数据的大量运用,我想这与管道符%>% 的使用,数据处理动词化,有着很重要的关系。

用最少的时间,解决最重要的、最常见的问题,我把这称为是高效;剩余的难点,我把其称为提高。

1. 列的拆分操作 separate()函数

separate() 通过在出现分隔符的地方进行拆分,将一列拆分为多列。

示例数据

table3
#> # A tibble: 6 x 3
#>   country      year rate             
#> * <chr>       <int> <chr>            
#> 1 Afghanistan  1999 745/19987071     
#> 2 Afghanistan  2000 2666/20595360    
#> 3 Brazil       1999 37737/172006362  
#> 4 Brazil       2000 80488/174504898  
#> 5 China        1999 212258/1272915272
#> 6 China        2000 213766/1280428583

1.1拆分初探

现在要将rate这一列,拆分成两列,以“/”为分隔符

table3 %>% 
  separate(rate, into = c("cases", "population"))
#> # A tibble: 6 x 4
#>   country      year cases  population
#>   <chr>       <int> <chr>  <chr>     
#> 1 Afghanistan  1999 745    19987071  
#> 2 Afghanistan  2000 2666   20595360  
#> 3 Brazil       1999 37737  172006362 
#> 4 Brazil       2000 80488  174504898 
#> 5 China        1999 212258 1272915272
#> 6 China        2000 213766 1280428583

上面的代码,没有给出分割的特征符号,这是因为,separate()函数默认将非字母和非数字的作为分隔符。因此,上面的代码默认将“/”视为分隔符。

操作图示

当然上面的也可以写成

table3 %>% 
  separate(rate, into = c("cases", "population"), sep = "/")

参数sep当中的其实是正则表达式,这个结合字符串的处理将会变得异常强大。

1.2 拆分后内容性质的转换

仔细观察上面的默认转换



默认转换之后的,是字符串类型,而对于这个数据,我们应该要得到数字类型,当然这样的转换,可以在后续转换。而separate()函数可以直接完成,如下:

table3 %>% 
  separate(rate, into = c("cases", "population"), convert = TRUE)
#> # A tibble: 6 x 4
#>   country      year  cases population
#>   <chr>       <int>  <int>      <int>
#> 1 Afghanistan  1999    745   19987071
#> 2 Afghanistan  2000   2666   20595360
#> 3 Brazil       1999  37737  172006362
#> 4 Brazil       2000  80488  174504898
#> 5 China        1999 212258 1272915272
#> 6 China        2000 213766 1280428583

2. unite()函数使用

有分开列的操作就有合并列的操作
示例如下:

table5 %>% 
  unite(new, century, year)
#> # A tibble: 6 x 3
#>   country     new   rate             
#>   <chr>       <chr> <chr>            
#> 1 Afghanistan 19_99 745/19987071     
#> 2 Afghanistan 20_00 2666/20595360    
#> 3 Brazil      19_99 37737/172006362  
#> 4 Brazil      20_00 80488/174504898  
#> 5 China       19_99 212258/1272915272
#> 6 China       20_00 213766/1280428583

默认操作函数中,将两列连接起来用“_”,如果要改变连接方式,代码如下:

table5 %>% 
  unite(new, century, year, sep = "")
#> # A tibble: 6 x 3
#>   country     new   rate             
#>   <chr>       <chr> <chr>            
#> 1 Afghanistan 1999  745/19987071     
#> 2 Afghanistan 2000  2666/20595360    
#> 3 Brazil      1999  37737/172006362  
#> 4 Brazil      2000  80488/174504898  
#> 5 China       1999  212258/1272915272
#> 6 China       2000  213766/1280428583

同样很好理解,在相应的地方加上sep参数。

上一篇 下一篇

猜你喜欢

热点阅读