R语言中怎样将数据框中的一列分成多列

Python018

R语言中怎样将数据框中的一列分成多列,第1张

1.创建数据

a <- data.frame("geneid1"=rep("TabHLH1",3),"geneid2"=c("TabHLH2.1","TabHLH2.2","TabHLH2.3"),"geneid3"=rep("TabHLH3",3))

结果如下:

 geneid1   geneid2 geneid3

1 TabHLH1 TabHLH2.1 TabHLH3

2 TabHLH1 TabHLH2.2 TabHLH3

3 TabHLH1 TabHLH2.3 TabHLH3

加载函数

library(dplyr)

library(tidyr)

将第二列以“.”分列

b <- a %>% separate(geneid2, c("gene","id"), "[.]")

结果如下

  geneid1     gene        id   geneid3

1 TabHLH1  TabHLH2  1  TabHLH3

2 TabHLH1  TabHLH2  2  TabHLH3

3 TabHLH1  TabHLH2  3  TabHLH3

函数split()可以按照分组因子,把向量,矩阵和数据框进行适当的分组。它的返回值是一个列表,代表分组变量每个水平的观测。这个列表可以使用sapply(),lappy()进行处理(apply – combine步骤),得到问题的最终结果。

只是分组,既可以对 向量 分组,也可以对 数据框 分组

参考资料:

最近有很多对文件的操作,经常使用到split函数,但是存在三个split函数,有时候会弄混,谨以此文以记之。

1. split()

2. str_spit()

3. strsplit()

总结: split(参数):split(向量/列表/数据框,因子/因子列表)

split()函数可以分组数据框和向量,返回list。

可以直接使用unsplit()。

split是按照factor去切分vector或者数据框,因此不能这样用:

切割数据框的用法:

针对vector的用法:

str_spllit()主要用于 split a vector of strings. 返回一个list。

str_spllit_fixed()可以返回一个matrix。

举个栗子:

上栗子: