提问人:theforestecologist 提问时间:9/27/2016 最后编辑:theforestecologist 更新时间:9/27/2016 访问量:1123
如何在 R 中将两个数字的向量制作成包含序列?
How to make a vector of two numbers into inclusive sequence in R?
问:
我有一个带有两个数字的向量(或矩阵等)。
是否有函数或其他简短的“单行”技巧可以使这些数字成为包含序列?
例如:
如果我有一个包含数字 1 和 15 的向量。 我想快速应用一个函数(或技巧)来生成一个包含 1:15 (1,2,3,4,5,6...15) 的新向量
我知道我可以使用该函数创建序列,但这需要我将向量(或矩阵等)中的两个数字写成“from”和“to”。seq
- 在对 data.frames、列表或矩阵进行索引会创建长行文本的示例中,最好不必为 from/to 参数重复这些文本字符串。
例:
dat <- data.frame(a = 1:5, b = 1:5, c = 1:5, d = 1:5, e = 1:5, f = 1:5)
#Too messy/long/time-consuming if my column names are longer/more complex:
names(dat)[names(dat) %in% c('a','b','c','d','e')]
#Too much coding text (I'm assuming it can be done simpler):
names(dat)[seq(from = which(names(dat) == 'a'), to = which(names(dat) == 'e'))]
#So how could I do something like the sequence example, but with less text?
#perhaps using: which(names(dat) %in% c('a','e')) in some way...?
答: 暂无答案
评论
do.call(seq, as.list(match(c("a", "e"), names(dat))))
或names(subset(dat,,a:e))
data.frames