dplyr::bind_rows整合多个数据框

欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA、GEO数据挖掘。

高效的整合多个数据框 

在base包中可以通过cbind, rbind按行或列连接数据框,这个我们不多解释了 dplyr中有更高级的函数bind_rows, bind_cols,能用于高效的连接多个数据框 其实这套高级函数是** do.call(cbind,dfs),do.call(rbind,dfs)**模式的植入,

  • 用于多个数据框的整合 list(数据框1,数据框2) .

  • id参数可以生成一个关联起原来数据框的id,标记数据来源

举例说明其应用

数据框输入作为参数 重要的特点是能够接受list作为输入参数 另一个特点是可以同时连接起多个数据框,不仅限于两个

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
one <- mtcars[1:4, ]
two <- mtcars[11:14, ]
head(one)
##                 mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
head(two)
##              mpg cyl  disp  hp drat   wt qsec vs am gear carb
## Merc 280C   17.8   6 167.6 123 3.92 3.44 18.9  1  0    4    4
## Merc 450SE  16.4   8 275.8 180 3.07 4.07 17.4  0  0    3    3
## Merc 450SL  17.3   8 275.8 180 3.07 3.73 17.6  0  0    3    3
## Merc 450SLC 15.2   8 275.8 180 3.07 3.78 18.0  0  0    3    3

按行连接,但rowname丢失了

(bind_rows(one,two))
##    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3

以list形式,自动拼接

bind_rows(list(one, two))
##    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3

按cyl裂解数据框,刚好获得了list形式,能够很好的与bind_rows衔接起来
且bind_rows不仅仅连接的是两个,还是多个

class(mtcars)
## [1] "data.frame"
split(mtcars, mtcars$cyl)
## $`4`
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## 
## $`6`
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Valiant        18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Merc 280       19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C      17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 
## $`8`
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
bind_rows(split(mtcars, mtcars$cyl))
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 2  24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## 3  22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## 4  32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## 5  30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## 6  33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## 7  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## 8  27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## 9  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## 10 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## 11 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## 12 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 13 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 14 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 15 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 16 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 17 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 18 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 19 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## 20 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 21 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 22 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 23 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 24 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## 25 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 26 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 27 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 28 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## 29 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 30 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## 31 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 32 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

可以连接多个list

bind_rows(list(one, two), list(two, one))
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5  17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6  16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7  17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8  15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 9  17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 10 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 11 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 12 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 13 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 14 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 15 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 16 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1

还可以连接向量,同时可以混合数据框

bind_rows(
  c(a = 1, b = 2),
  c(a = 3, b = 4)
)
## # A tibble: 2 x 2
##       a     b
##   <dbl> <dbl>
## 1     1     2
## 2     3     4

可以创建一个关联连接两个数据框的id,用于标记数据框的来源

bind_rows(list(one, two), .id = "id")
##   id  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2  1 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3  1 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4  1 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5  2 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6  2 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7  2 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8  2 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
bind_rows(list(a = one, b = two), .id = "id")
##   id  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  a 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2  a 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3  a 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4  a 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5  b 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6  b 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7  b 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8  b 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
bind_rows("group 1" = one, "group 2" = two, .id = "groups")
##    groups  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1 group 1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2 group 1 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3 group 1 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4 group 1 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5 group 2 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6 group 2 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7 group 2 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8 group 2 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3

按行结合时不需要列名相同

bind_rows(data.frame(x = 1:3), data.frame(y = 1:4))
##    x  y
## 1  1 NA
## 2  2 NA
## 3  3 NA
## 4 NA  1
## 5 NA  2
## 6 NA  3
## 7 NA  4

但按列结合时需要行名相同

# bind_cols(data.frame(x = 1), data.frame(y = 1:2)) 报错结果
bind_cols(one, two)
##    mpg cyl disp  hp drat    wt  qsec vs am gear carb mpg1 cyl1 disp1 hp1
## 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 17.8    6 167.6 123
## 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 16.4    8 275.8 180
## 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 17.3    8 275.8 180
## 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 15.2    8 275.8 180
##   drat1  wt1 qsec1 vs1 am1 gear1 carb1
## 1  3.92 3.44  18.9   1   0     4     4
## 2  3.07 4.07  17.4   0   0     3     3
## 3  3.07 3.73  17.6   0   0     3     3
## 4  3.07 3.78  18.0   0   0     3     3
bind_cols(list(one, two))
##    mpg cyl disp  hp drat    wt  qsec vs am gear carb mpg1 cyl1 disp1 hp1
## 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 17.8    6 167.6 123
## 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 16.4    8 275.8 180
## 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 17.3    8 275.8 180
## 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 15.2    8 275.8 180
##   drat1  wt1 qsec1 vs1 am1 gear1 carb1
## 1  3.92 3.44  18.9   1   0     4     4
## 2  3.07 4.07  17.4   0   0     3     3
## 3  3.07 3.73  17.6   0   0     3     3
## 4  3.07 3.78  18.0   0   0     3     3

bind_cols用法与bind_rows相同,这里不去赘述了

插一个split函数的应用讲解

split函数用于裂解数据框,可以根据因子来裂解,裂解后得到的是一个list list就非常适合与lapply,sapply,tapply等结合起来使用了

举个例子说明一下

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
df<-as.data.frame(mtcars)

按cyl分组裂解数据框

with(df,split(mpg,cyl))
## $`4`
##  [1] 22.8 24.4 22.8 32.4 30.4 33.9 21.5 27.3 26.0 30.4 21.4
## 
## $`6`
## [1] 21.0 21.0 21.4 18.1 19.2 17.8 19.7
## 
## $`8`
##  [1] 18.7 14.3 16.4 17.3 15.2 10.4 10.4 14.7 15.5 15.2 13.3 19.2 15.8 15.0

裂解整个数据框

split(mtcars,mtcars$cyl)
## $`4`
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## 
## $`6`
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Valiant        18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Merc 280       19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C      17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 
## $`8`
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

按多个变量构成的分组裂解

with(df,split(mpg,list(cyl,am)))
## $`4.0`
## [1] 24.4 22.8 21.5
## 
## $`6.0`
## [1] 21.4 18.1 19.2 17.8
## 
## $`8.0`
##  [1] 18.7 14.3 16.4 17.3 15.2 10.4 10.4 14.7 15.5 15.2 13.3 19.2
## 
## $`4.1`
## [1] 22.8 32.4 30.4 33.9 27.3 26.0 30.4 21.4
## 
## $`6.1`
## [1] 21.0 21.0 19.7
## 
## $`8.1`
## [1] 15.8 15.0

按列裂解矩阵

ma <- cbind(x = 1:10, y = (-4:5)^2)
head(ma)
##      x  y
## [1,] 1 16
## [2,] 2  9
## [3,] 3  4
## [4,] 4  1
## [5,] 5  0
## [6,] 6  1
split(ma, col(ma))
## $`1`
##  [1]  1  2  3  4  5  6  7  8  9 10
## 
## $`2`
##  [1] 16  9  4  1  0  1  4  9 16 25
split(1:10, 1:2)
## $`1`
## [1] 1 3 5 7 9
## 
## $`2`
## [1]  2  4  6  8 10

do.call函数

执行函数及传递给函数的参数 举例说明比较清楚

在给定的参数下执行paste函数

tmp <- expand.grid(letters[1:2], 1:3, c("+", "-"))
tmp
##    Var1 Var2 Var3
## 1     a    1    +
## 2     b    1    +
## 3     a    2    +
## 4     b    2    +
## 5     a    3    +
## 6     b    3    +
## 7     a    1    -
## 8     b    1    -
## 9     a    2    -
## 10    b    2    -
## 11    a    3    -
## 12    b    3    -
do.call("paste", c(tmp, sep = ""))
##  [1] "a1+" "b1+" "a2+" "b2+" "a3+" "b3+" "a1-" "b1-" "a2-" "b2-" "a3-"
## [12] "b3-"

quote参数决定是否quote起来

list(as.name("A"))
## [[1]]
## A
do.call(paste, list(as.name("A"), as.name("B")), quote = TRUE)
## [1] "A B"


(0)

相关推荐

  • R学习 从Tidyverse学起,入门R语言(tibble,readr和dplyr)

    R学习往期回顾: R学习:字符串 R学习:环境和函数 R学习:数据框的基本操作 R学习:R for Data Science(五) R学习:R for Data Science(四) R学习:R fo ...

  • 今天跟着我把热图学个遍,囊括所有需求

    用于绘制交互式和静态热图的R包和功能很多,包括: heatmap()[R基本函数,统计数据包]:绘制一个简单的热图 heatmap.2()[ gplots R包]:与R base函数相比,绘制了增强的 ...

  • prep, bake, juice三步说的真清楚

    Let's walk through what each of these functions does. First, let's define a recipe with a couple of ...

  • R数据框:按列索引按列名称删除指定的列数据

    读取数据集后,发现某些数据并不需要,如果想让数据看着简单些,可以考虑删除某些指定的列 数据源 雇员数据employee 本号后台回复[雇员]下载数据,欢迎读者朋友自行实践. 按索引号删除某列 bdat ...

  • 如何修改R数据框的列名称?

    现在我们预览一下[犯罪数据], 有两个列的名称,也就是两个变量名称中间含有空格,这在未来的统计分析中容易造成一些不必要的操作错误. 另外,变量名称也不宜太长,建议用英文缩写来表示,短英文字符是最好的. ...

  • Pandas将列表(List)转换为数据框(Dataframe)

    这篇文章主要介绍了Pandas将列表(List)转换为数据框(Dataframe),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 ...

  • 学徒讨论-在数据框里面使用每列的平均值替换NA

    最近学徒群在讨论一个需求,就是用数据框的每一列的平均数替换每一列的NA值.但是问题的提出者自己的代码是错的,如下: 他认为替换不干净,应该是循环有问题.希望我们帮忙检查,我通常是懒得看其他人写的代码, ...

  • 按照列筛选数据框不容易那么按照行就容易吗

    前面我出过一个考题,是对GEO数据集的样本临床信息,根据列进行筛选,比如: rm(list=ls()) options(stringsAsFactors = F) library(GEOquery) ...

  • R语言里面双层list变成长形数据框

    绘图需求最大的难关往往是数据整理,比如下面的双层list : set.seed(123456) gs=list(tmp1=list(g1=sample(1000,abs(floor(100*rnorm ...

  • 对表型数据框进行去冗余

    上次GEO课程回答了学员问题:使用R语言在向量的任何位置插入任何元素 实力演示了如何自定义函数,这样大家就可以无限制创造方法来解决自己特殊的需求,课后一个月的答疑期,发现大家还是有各式各样的问题,比如 ...

  • R语言with/within函数添加数据框到环境变量

    欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA.GEO数据挖掘. R语言中的with/within函数  介绍一个神操作 如何把数据框或列表 ...

  • ####数据框的整理####

    ##首先使用R语言基本函数进行处理,这里使用我们自己的数据做一个演示: setwd("E:/Shared_Folder/HG_usearch_HG") # 读入实验设计和Alpha ...