R从2列数据框生成序列
R generation of sequences from 2 columns data frame
我有一个 data.frame
由 2 列组成,其中第一列代表序列的起始编号,第二列代表同一序列的结束编号。
对于每一行,我想生成一个我刚才描述的序列。
数据:
structure(list(start = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30),
end = c(7, 10, 13, 16, 19, 22, 25, 28, 31, 34)), .Names = c("start", "end"), row.names = c(NA, -10L), class = "data.frame")
> b
start end
1 3 7
2 6 10
3 9 13
4 12 16
5 15 19
6 18 22
7 21 25
8 24 28
9 27 31
10 30 34
我认为一个简单的
seq(b[,1],b[,2])
应该可以,但不是。
我想要的结果是一个序列列表,因此在本例中是 10 个列表(或另一个容器)。例如,第一个序列应该是:3,4,5,6,7。其他的和我展示的一样
你可以试试Map
Map(`:`, b$start, b$end)
如果需要矩阵输出
mapply(`:`, b$start, b$end)
或者
apply(b, 1, function(x) seq(x[1], x[2]))
我有一个 data.frame
由 2 列组成,其中第一列代表序列的起始编号,第二列代表同一序列的结束编号。
对于每一行,我想生成一个我刚才描述的序列。
数据:
structure(list(start = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30),
end = c(7, 10, 13, 16, 19, 22, 25, 28, 31, 34)), .Names = c("start", "end"), row.names = c(NA, -10L), class = "data.frame")
> b
start end
1 3 7
2 6 10
3 9 13
4 12 16
5 15 19
6 18 22
7 21 25
8 24 28
9 27 31
10 30 34
我认为一个简单的
seq(b[,1],b[,2])
应该可以,但不是。
我想要的结果是一个序列列表,因此在本例中是 10 个列表(或另一个容器)。例如,第一个序列应该是:3,4,5,6,7。其他的和我展示的一样
你可以试试Map
Map(`:`, b$start, b$end)
如果需要矩阵输出
mapply(`:`, b$start, b$end)
或者
apply(b, 1, function(x) seq(x[1], x[2]))