分离功能的问题
problems with separate function
我正在尝试将 1 列“A1A2”分成 2 列,A1 和 A2。
head(merged2)
SNP A1A2 P
1:12321 AG 3
2:1231232 TC 12
8:1231321 GG 13
我要:
SNP A1 A2 P
1:12321 A G 3
2:1231232 T C 12
8:1231321 G G 13
我试过了:
merged3 <- merged2 %>% separate( A1A2, c( "A1", "A2" ) )
但这导致第二列中的 NA:
SNP A1 A2 P
1:12321 A <NA> 3
2:1231232 T <NA> 12
8:1231321 G <NA> 13
有谁知道为什么会这样以及如何让代码合作?
您可以使用 extract
,如果适合您:
df %>% extract(A1A2, into = c('A1','A2'), regex = '(.)(.)')
# A tibble: 3 x 4
SNP A1 A2 P
<chr> <chr> <chr> <dbl>
1 1:12321 A G 3
2 2:1231232 T C 12
3 8:1231321 G G 13
问题出在 sep
参数上,默认情况下它以非字母数字字符分隔。
这里,一种解决方案是使用一个数字作为sep
,表示在哪个位置剪切:
merged2 %>%
separate( A1A2, c( "A1", "A2" ), sep = 1 )
#> SNP A1 A2 P
#> 1 1:12321 A G 3
#> 2 2:1231232 T C 12
#> 3 8:1231321 G G 13
我正在尝试将 1 列“A1A2”分成 2 列,A1 和 A2。
head(merged2)
SNP A1A2 P
1:12321 AG 3
2:1231232 TC 12
8:1231321 GG 13
我要:
SNP A1 A2 P
1:12321 A G 3
2:1231232 T C 12
8:1231321 G G 13
我试过了:
merged3 <- merged2 %>% separate( A1A2, c( "A1", "A2" ) )
但这导致第二列中的 NA:
SNP A1 A2 P
1:12321 A <NA> 3
2:1231232 T <NA> 12
8:1231321 G <NA> 13
有谁知道为什么会这样以及如何让代码合作?
您可以使用 extract
,如果适合您:
df %>% extract(A1A2, into = c('A1','A2'), regex = '(.)(.)')
# A tibble: 3 x 4
SNP A1 A2 P
<chr> <chr> <chr> <dbl>
1 1:12321 A G 3
2 2:1231232 T C 12
3 8:1231321 G G 13
问题出在 sep
参数上,默认情况下它以非字母数字字符分隔。
这里,一种解决方案是使用一个数字作为sep
,表示在哪个位置剪切:
merged2 %>%
separate( A1A2, c( "A1", "A2" ), sep = 1 )
#> SNP A1 A2 P
#> 1 1:12321 A G 3
#> 2 2:1231232 T C 12
#> 3 8:1231321 G G 13