我有一个数据帧mydf
。我也有一个叫做myvec <- c("chr5:11", "chr3:112", "chr22:334")
的载体。如果任何向量元素与mydf
中的键相匹配并且生成mydf
(result
)的子集,我想要做的是选择行的范围(包括上面的3个值和下面的3个值)。如何选择R的行范围
由于在myvec
我们CHR5:11匹配与mydf
关键,我们选择行匹配CHR5:8(下面三个值),以CHR5:14(上述三个值)在result
。
mydf<- structure(list(key = structure(c(5L, 2L, 7L, 8L, 4L, 1L, 6L,
3L, 11L, 10L, 9L), .Names = c("34", "35", "36", "37", "38", "39",
"40", "41", "42", "43", "44"), .Label = c("chr5:10", "chr5:11",
"chr5:1123", "chr5:118", "chr5:12", "chr5:123", "chr5:13", "chr5:14",
"chr5:19", "chr5:8", "chr5:9"), class = "factor"), variantId = structure(1:11, .Names = c("34",
"35", "36", "37", "38", "39", "40", "41", "42", "43", "44"), .Label = c("9920068",
"9920069", "9920070", "9920071", "9920072", "9920073", "9920074",
"9920075", "9920076", "9920077", "9920078"), class = "factor")), .Names = c("key",
"variantId"), row.names = c("34", "35", "36", "37", "38", "39",
"40", "41", "42", "43", "44"), class = "data.frame")
结果
key variant
43 "chr5:8" "9920077"
42 "chr5:9" "9920076"
39 "chr5:10" "9920073"
35 "chr5:11" "9920069"
34 "chr5:12" "9920068"
36 "chr5:13" "9920070"
37 "chr5:14" "9920071"
根据您的dput,'mydf'是一个矩阵,而不是一个data.frame 。请修复。 –
@Pascal谢谢,我已修复它。 – MAPK