我正在管理数据表。我有13 * 2598893数据表,并且我正在尝试使新列填充有根据另一列计算的字符。 因此,我制作了一个函数,并将其应用于具有数百万行的“ for in”循环中。它需要永远!我等了几分钟,无法将其与系统崩溃区分开来。
我只尝试了10行,并且循环和函数运行良好。但是,当我将其扩展到其他行时,它又需要永远的时间。
str(eco)
'data.frame': 2598893 obs. of 13 variables:
具有这样的功能
check<-function(x){
if(x<=15){
return(1)
}
else{
return(0)
}
}
并应用了这样的循环。
for(x in c(1:nrow(eco))){eco[x,13]<-check(eco[x,4])}
它继续并且继续起作用。
如何缩短这项工作?还是这仅仅是我应该忍受的R的极限?
答案 0 :(得分:3)
您可能应该尝试向量化您的操作(NB:public function birthday()
{
$date = Carbon::now();
$member = Member::whereMonth('dob', '=', $date->month)->whereDay('dob', '=', $date->day)->get();
return $member;
}
循环通常可以在R中避免)。另外,您可以签出for
软件包以进一步提高效率:
data.table