Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_For Loop_Binning - Fatal编程技术网

R中的环纬度装箱

R中的环纬度装箱,r,loops,for-loop,binning,R,Loops,For Loop,Binning,我是使用R的新手,在创建循环时遇到了一些问题 我有一个从2017年到2019年的每小时数据的数据框,这些数据框有以度为单位的纬度和经度坐标,以及其他列。纬度是横跨两个半球的负值和正值-从-90到+90。我想创建一个循环,通过5度纬度带(例如-45到-40)将它们分开,然后在各个表中输出 我目前正在使用以下代码将原始数据帧hourly.avg.bylat划分为单独的数据帧,即lat.bin.neg90_neg85,我将继续将其编写为表,但是我觉得这相当笨拙和耗时,并且更喜欢使用循环来完成 lat.

我是使用R的新手,在创建循环时遇到了一些问题

我有一个从2017年到2019年的每小时数据的数据框,这些数据框有以度为单位的纬度和经度坐标,以及其他列。纬度是横跨两个半球的负值和正值-从-90到+90。我想创建一个循环,通过5度纬度带(例如-45到-40)将它们分开,然后在各个表中输出

我目前正在使用以下代码将原始数据帧
hourly.avg.bylat
划分为单独的数据帧,即
lat.bin.neg90_neg85
,我将继续将其编写为表,但是我觉得这相当笨拙和耗时,并且更喜欢使用循环来完成

lat.bin.neg90_neg85<-as.data.frame(split.data.frame(hourly.avg.bylat, cut(hourly.avg.bylat$lat, c(-90, -85), include.lowest=TRUE, labels = "")))

lat.bin.neg90_neg85您可以使用列表存储输出并在循环中进行计算:

output=list()
for(i in seq(-90, 85, 5))
{
  output[[paste0(i,"_",i+5)]]<-as.data.frame(split.data.frame(hourly.avg.bylat,
                               cut(hourly.avg.bylat$lat, c(i, i+5),
                               include.lowest=TRUE, labels = "")))
}
output=list()
(i在序号中(-90,85,5))
{

输出[[paste0(i,“,”i+5)]不需要循环。可以同时使用
split
cut
功能,并在一行中执行操作:
split(hourly.avg.bylat,cut((hourry.avg.bylat$lat,breaks=seq(-90,90,5)))
好的,谢谢,我不知道你可以为
拆分
提供
break
当然。事实上,即使
by
也有效:
by(hourry.avg.bylat,cut(hourry.avg.bylat$lat,breaks=seq(-90,90,5)),identity)
。并将
标识
更改为任何
函数
,以传递子集进行处理,如
摘要