[英]Iterating x Times a with a function and rbind
我对 R 比较陌生(一般来说是编码)。 我想创建一个新顶点(或 1 列数据框)。 这些数据与地质年代有关,这就是数字如此之大的原因。
这个想法是创建一个初步数据集,定义一个函数,该函数获取该数据集的最后一行并为其添加一个值,然后将结果插入回数据集中。
我将如何在一定数量的尝试(例如,n=10)中迭代它? 是否需要 for 循环,如果需要,我将如何实现?
Ages <- matrix(c(10000000,20000000,30000000,40000000),nrow=4,ncol=1)
periods <- function(Ages){
output <- tail(Ages,n=1)+10000000
return(output)
}
Ages <- rbind(Ages,periods(tail(Ages,n=1)))
如果您将初始对象保留为向量,然后根据需要将其最后转换为 df,则更容易。 下面是一种使用缩放数字以提高可读性的方法:
Ages <- 1:4 * 100
Ages
[1] 100 200 300 400
last <- Ages[length(Ages)]
last
[1] 400
add_val <- 1000
n_adds <- 10
new_tail <- cumsum(c(last, rep(add_val, n_adds)))
new_tail
[1] 400 1400 2400 3400 4400 5400 6400 7400 8400 9400 10400
Ages2 <- c(Ages[1:length(Ages) - 1], new_tail)
Ages2
[1] 100 200 300 400 1400 2400 3400 4400 5400 6400 7400 8400 9400 10400
代码可以写得更紧凑,但我想向您展示流程以及如何在 R 中使用强大的矢量化范例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.