R 在列中选择一个值范围,从开始处删除一个值,在结束处添加一个值
我有一个这样的数据框R 在列中选择一个值范围,从开始处删除一个值,在结束处添加一个值,r,function,filter,R,Function,Filter,我有一个这样的数据框 col1 = rnorm(1:100) col2 = c(1:100) col3 = c(501:600) df <- data.frame(col1, col2, col3) col1=rnorm(1:100) col2=c(1:100) col3=c(501:600) df如果将这些结果组合到一个命名列表中,而不是在全局工作区中创建一个未连接对象的集合,那么效果会更好:首先创建子集列表,然后添加名称: dflist <- lapply(1:
col1 = rnorm(1:100)
col2 = c(1:100)
col3 = c(501:600)
df <- data.frame(col1, col2, col3)
col1=rnorm(1:100)
col2=c(1:100)
col3=c(501:600)
df如果将这些结果组合到一个命名列表中,而不是在全局工作区中创建一个未连接对象的集合,那么效果会更好:首先创建子集列表,然后添加名称:
dflist <- lapply(1:71, function(n) df[n:(n+30), ] )
names(dflist) <- paste0("df", 30:100)
dflist如果你想应用一个函数,比如说mean
库(data.table);图书馆(动物园);setDT(df)[,rollapply(col1,30,mean)]
谢谢您的回复。我不想取30个值的平均值,我只想将它们放在df30、df31、df32等中。有没有办法做到这一点?不建议在全局环境中创建多个对象。我只是展示一种应用函数的方法。我理解你的意思,你可以在RollApplyTanks中应用你的自定义函数。好的,我不想创建71个对象,但是有没有可能将df[1:30]作为数据帧来运行模型,然后将其复制到最后30个值上呢?非常感谢:)
dflist <- lapply(1:71, function(n) df[n:(n+30), ] )
names(dflist) <- paste0("df", 30:100)