Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在列中选择一个值范围,从开始处删除一个值,在结束处添加一个值_R_Function_Filter - Fatal编程技术网

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)