2017-08-15 103 views
1
> head(base_mat) 
                            V1 
1 CTGCAGAGGCTATTTCCTGGAATGAATCAACGAGTGAAACGAATAACTCTATGGTGACTGAATTCATTTTTCTGGGTCTCTCTGATTCTCAGGAACTCCAG 
2 TCTGCTGTGAGGCAGACGTTGGGACTGTAGAGGCTGACGGGAGGCAGAGGCTGGGCCTGGAGGGGCCACCAAGATGCAGGAGCTGGGCCTGGAGAGGCTGC 
3 CATAATCACAATTTCCTCCCCATTTTCTTAGTTCTCATAATTTTAGCCACAGCCCAGTTGGCTGGACCAATGGATGGAGAGAATCACTCAGTGGTATCTGA 
4 TCAGATACCACTGAGTGATTCTCTCCATCCATTGGTCCAGCCAACTGGGCTGTGGCTAAAATTATGAGAACTAAGAAAATGGGGAGGAAATTGTGATTATG 
5 CCAAATACCTGCACAGTATGTATGATAAATGCATATGATAAAGTAAAAAAAAAAATAGCACACACTGAAAGAAAGCCAACAGAAGAGGGCACTGGGCATGG 
6 TTGAGCTGGGATTATAGTTGACATTTCATTATAATATATTAGCTATTCTAGACTTTATGCATTTATGTAAAGTTTTCTTTGTTGCACTTTAAGTTCTGTGA 

我想将它转换成字符数组,但strsplit()功能不起作用。如何将字符串转换矢量字符数组

> strsplit(head(base_mat),split="") 
Error in strsplit(head(base_mat), split = "") : 非字符参数 

我希望字符串的每一列都是data.frame的变量。 如

V1 V2 V3 
C  T  G ... 
T  C  T 
... 

如何做到这一点?

+1

最有可能的罪魁祸首是,你是用因子变量工作,必须使用'as.character'要挟变量之前使用'strsplit'。 – lmo

+0

你可以做一个base_mat dput吗? – Mark

+1

'x < - “CTGCAGAGGCTATTTCCTGGAATGAATCAACGAGTGAAACGAATAAC”; 012rsxlit(x,“”)'在'strsplit()''split ='中使用空字符串 – jogo

回答

1

感谢@Imo提醒我解决方案的factor变量问题和@jogo。我的问题可以修复如下。

> options(stringsAsFactors = FALSE) 
> x <- c("CTGCAGAGGCTATTTCCTGGAATGAATCAACGAGTGAAACGAATAAC","CTGCAGAGGCTATTTCCTGGAATGAATCAACGAGTGAAACGAATAAC") 
> x <- data.frame(x) 
> strsplit(x, "") 
Error in strsplit(x, "") : non-character argument 
> strsplit(x[,1], "") 
[[1]] 
[1] "C" "T" "G" "C" "A" "G" "A" "G" "G" "C" "T" "A" 
[13] "T" "T" "T" "C" "C" "T" "G" "G" "A" "A" "T" "G" 
[25] "A" "A" "T" "C" "A" "A" "C" "G" "A" "G" "T" "G" 
[37] "A" "A" "A" "C" "G" "A" "A" "T" "A" "A" "C" 

[[2]] 
[1] "C" "T" "G" "C" "A" "G" "A" "G" "G" "C" "T" "A" 
[13] "T" "T" "T" "C" "C" "T" "G" "G" "A" "A" "T" "G" 
[25] "A" "A" "T" "C" "A" "A" "C" "G" "A" "G" "T" "G" 
[37] "A" "A" "A" "C" "G" "A" "A" "T" "A" "A" "C" 
相关问题