将数据集子集化为R

时间:2017-04-19 04:57:34

标签: r subset

我有一个类似的数据集:

x

a b c d e
1 2 1 2 1
2 3 1 2 1 
3 4 5 1 3
. . . . .
. . . . .
. . . . .
1000 2 43 1 3 

y
c(2,18,20)

z
c(12,28,30)

我需要在3个数据集中对数据集x进行子集化,其中第一个数据集将包含来自y [1]的col col值:z [1]等等

1 个答案:

答案 0 :(得分:1)

尝试:

dat <- data.frame(a = 1:30, b = 31:60)
y <- c(2, 18, 24)
z <- c(4, 21, 25)

mapply(function(a,b) dat[a:b,], y, z,
       SIMPLIFY = FALSE)
# [[1]]
#   a  b
# 2 2 32
# 3 3 33
# 4 4 34
# [[2]]
#     a  b
# 18 18 48
# 19 19 49
# 20 20 50
# 21 21 51
# [[3]]
#     a  b
# 24 24 54
# 25 25 55