为特定列拆分字符串

split string for specific column

我有这样一个文件:

       V1                                               V2
1 1-500891               CGCGACCTCAGATCAGACGTGGCGACCCGCTGAA
2 2-280976                           AGGTTCCGGATAAGTAAGAGCC
3 3-223181                           TCTTAACCCGGACCAGAAACTA

我想拆分(并交换)V1 列,从而产生以下输出

                                       Sequence    Count
           CGCGACCTCAGATCAGACGTGGCGACCCGCTGAA      500891
                       AGGTTCCGGATAAGTAAGAGCC      280976 
                       TCTTAACCCGGACCAGAAACTA      223181 

我已经试过了,但是没有用:

df_split <- strsplit(as.character(df), split="-", fixed=T)

您可以尝试 sub 删除字符串直到 - 的部分。

df$V1 <- sub('.*-', '', df$V1)
df
#     V1                                 V2
#1 500891 CGCGACCTCAGATCAGACGTGGCGACCCGCTGAA
#2 280976             AGGTTCCGGATAAGTAAGAGCC
#3 223181             TCTTAACCCGGACCAGAAACTA

您对整个数据集而不是特定列 ("V1") 应用了 strsplit。这里有一个可供您考虑的选项

df$V1 <- sapply(strsplit(as.character(df$V1),
                    split="-", fixed=TRUE),`[`,2)
df$V1
#[1] "500891" "280976" "223181"

或使用 tidyr

的选项
library(tidyr)
extract(df, 'V1', 'Count', '.*-(.*)')
 #  Count                                 V2
 #1 500891 CGCGACCTCAGATCAGACGTGGCGACCCGCTGAA
 #2 280976             AGGTTCCGGATAAGTAAGAGCC
 #3 223181             TCTTAACCCGGACCAGAAACTA