【发布时间】:2018-03-26 20:57:52
【问题描述】:
我有数据框z1:
z1 <- data.frame(time=as.factor(rep(0.5:9.5,times=rep(c(9,10,8,11,12),2))),
roi= rep(c(1:9,1:10,1:8,1:11,1:12),2), area=runif(100, 5.0, 7.5))
我想创建一个新的数据框 z2 具有 10*nrow(z1) 行,条件为:
在每个time 值处,i in 1: c(nrow(z1) -1) 的每第二行(z1$roi[i:i+1] and z1$area[i:i+1]) 用于在z2 中创建列roi 和area,例如
z2$roi <- seq(z1$roi[i],z1$roi[i+1], length.out = 10)
z2$area <- seq(z1$area[i],z1$area[i+1], length.out = 10)
如果数据框z1 看起来像:
time roi area
1 0.5 1 6.181150 #=z1$roi[1]
2 0.5 2 5.469366 #=z1$roi[2]
3 0.5 3 6.742525
.
.
.
98 9.5 10 6.063234
99 9.5 11 6.824393 #=z1$roi[99]
100 9.5 12 7.346298 #=z1$roi[100]
数据框z2 将是:
time roi area
1 0.5 1.000000 6.181150 #=z1$roi[1]
2 0.5 1.111111 6.102063
.
.
.
9 0.5 1.888889 5.548453
10 0.5 2.000000 5.469366 #=z1$roi[2]
.
.
.
991 9.5 11.00000 6.824393 #=z1$roi[99]
992 9.5 11.11111 6.882383
.
.
.
999 9.5 11.88889 7.288309
1000 9.5 12.00000 7.346298 #=z1$roi[100]
谁能帮帮我?谢谢!
【问题讨论】:
-
您的行号在预期输出中是错误的
-
听起来像是线性插值问题。例如。 - 参见
?approx- 您可以将每行之间的序列值指定为xout=值。