使用函数和rbind迭代x乘以a

bttbmeg0  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(135)

我对R(和一般的编码)比较陌生。我想创建一个新的顶点(或一个1列 Dataframe )。数据与地质年龄有关,这就是为什么数字这么大。
其思想是创建一个初步的数据集,定义一个函数,该函数获取该数据集的最后一行并向其添加一个值,然后将结果插入回数据集。
我该如何迭代一组尝试次数(例如,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)))
5f0d552i

5f0d552i1#

如果你把初始对象保持为向量,然后把它转换为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中使用强大的矢量化范例。

相关问题