为特定列拆分字符串
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
我有这样一个文件:
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