用R中的条件向量构建数据帧
我有两个向量用R中的条件向量构建数据帧,r,R,我有两个向量 a <- c(18,19,19,19,21,21,22,23,24,25,26,27,28,30,31,35,36,37) b <- c(19,25,31,37) 此处,向量b中的值19重复至向量a中的值19。 之后,21(a中)大于19,因此下一个值25(b中)将重复,直到25(a中) 以类似的方式构造数据帧 谢谢。我们可以从findInterval获取职位索引,使用该索引为代表创建时间 i1 <- findInterval(b, a) data.frame(
a <- c(18,19,19,19,21,21,22,23,24,25,26,27,28,30,31,35,36,37)
b <- c(19,25,31,37)
此处,向量b
中的值19重复至向量a
中的值19。
之后,21(a中)大于19,因此下一个值25(b中)将重复,直到25(a中)
以类似的方式构造数据帧
谢谢。我们可以从
findInterval
获取职位索引,使用该索引为代表创建时间
i1 <- findInterval(b, a)
data.frame(a, b = rep(b, c(i1[1], diff(i1))))
# a b
#1 18 19
#2 19 19
#3 19 19
#4 19 19
#5 21 25
#6 21 25
#7 22 25
#8 23 25
#9 24 25
#10 25 25
#11 26 31
#12 27 31
#13 28 31
#14 30 31
#15 31 31
#16 35 37
#17 36 37
#18 37 37
i1或者
data.frame(a, b = sapply(a, function(x) b[x <= b][1]))
# a b
# 1 18 19
# 2 19 19
# 3 19 19
# 4 19 19
# 5 21 25
# 6 21 25
# 7 22 25
# 8 23 25
# 9 24 25
# 10 25 25
# 11 26 31
# 12 27 31
# 13 28 31
# 14 30 31
# 15 31 31
# 16 35 37
# 17 36 37
# 18 37 37
data.frame(a,b=sapply(a,函数(x)b[x@akrun.Thankyou@Julius你能解释一下[1]
这个术语吗。@用户7462639,为了得到b
列,我检查a
并寻找所有大于等于a
的特定元素的b
:[x@Julius谢谢你的解释。
data.frame(a, b = sapply(a, function(x) b[x <= b][1]))
# a b
# 1 18 19
# 2 19 19
# 3 19 19
# 4 19 19
# 5 21 25
# 6 21 25
# 7 22 25
# 8 23 25
# 9 24 25
# 10 25 25
# 11 26 31
# 12 27 31
# 13 28 31
# 14 30 31
# 15 31 31
# 16 35 37
# 17 36 37
# 18 37 37