@user.update_languages(params[:language][:language1],
params[:language][:language2],
params[:language][:language3])
lang_errors = @user.errors
logger.debug "--------------------LANG_ERRORS----------101-------------"
+ lang_errors.full_messages.inspect
if params[:user]
@user.state = params[:user][:state]
success = success & @user.save
end
logger.debug "--------------------LANG_ERRORS-------------102----------"
+ lang_errors.full_messages.inspect
if lang_errors.full_messages.empty?
Run Code Online (Sandbox Code Playgroud)
@userobject会向方法中的lang_errors变量添加错误update_lanugages.当我对@user对象执行保存时,我丢失了最初存储在lang_errors变量中的错误.
虽然我试图做的更多是一个黑客(似乎没有工作).我想了解为什么变量值被淘汰了.我理解通过引用传递,所以我想知道如何在不被淘汰的情况下将该值保存在该变量中.
我正在开发一个程序,该程序将处理可能大小为100GB或更大的文件.这些文件包含一组可变长度记录.我已经启动并运行了第一个实现,现在我正在寻求提高性能,特别是在输入文件被多次扫描时更有效地进行I/O.
mmap()通过C++的fstream库使用和读取块有经验吗?我想做的是从磁盘读取大块到缓冲区,从缓冲区处理完整记录,然后阅读更多.
该mmap()代码可能会变得非常凌乱,因为mmap"d块需要躺在页大小的边界(我的理解)和记录可能潜在般划过页面边界.使用fstreams,我可以寻找记录的开头并再次开始阅读,因为我们不仅限于阅读位于页面大小边界的块.
如何在不实际编写完整实现的情况下决定这两个选项?任何经验法则(例如,mmap()快2倍)或简单测试?
当tmux启动或打开一个新窗口时,它不会加载我的.profile或.bashrc.我. ~/.bashrc每次都打字.有没有办法让这种情况自动发生?
我知道循环很慢R,我应该尝试以矢量化的方式做事.
但为什么?为什么循环缓慢且apply速度快?apply调用几个子功能 - 这似乎不快.
更新:对不起,这个问题不合适.我混淆了矢量化apply.我的问题应该是,
"为什么矢量化更快?"
我已经阅读了一些关于tryCatch和cuzzins的其他SO问题,以及文档:
但我还是不明白.
我正在运行一个循环,next如果发生任何一种错误,我想跳过:
for (i in 1:39487) {
# EXCEPTION HANDLING
this.could.go.wrong <- tryCatch(
attemptsomething(),
error=function(e) next
)
so.could.this <- tryCatch(
doesthisfail(),
error=function(e) next
)
catch.all.errors <- function() { this.could.go.wrong; so.could.this; }
catch.all.errors;
#REAL WORK
useful(i); fun(i); good(i);
} #end for
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,没有next我能找到的文件)
当我跑步时,R鸣喇叭:
Error in value[[3L]](cond) : no loop for break/next, jumping to top level
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么基本点?这tryCatch显然是在for循环中,所以为什么不R知道呢?
我想发送来自R的电子邮件.这是我到目前为止所拥有的:
library(sendmailR)
from <- "eamil@example.com"
to <- "email2@example.com"
subject <- "Performance Result"
body <- "This is the result of the test:"
mailControl=list(smtpServer="snmpt server address")
sendmail(from=from,to=to,subject=subject,msg=body,control=mailControl)
Run Code Online (Sandbox Code Playgroud)
当我执行此脚本时,我的R会话挂起.有什么想法可能会发生什么?
我正在读" 为了好大学而学习你的哈斯克尔".他的例子 [2,2..20]和[3, 6..20]工作正常,但我有三个奇怪的结果:
[17, 1..171]产生空列表.[17, 17..171111]重复该数字,17直到我中断GHCi.take 54 [171, 234..]和之间有一个奇怪的区别take 54 [171, 244..]:
ghci> take 54 [171, 234..]
[171,234,297,360,423,486,549,612,675,738,801,864,927,990,1053,1116,1179,1242,1305,1368,1431,1494,1557,1620,1683,1746,1809,1872,1935,1998,2061,2124,2187,2250,2313,2376,2439,2502,2565,2628,2691,2754,2817,2880,2943,3006,3069,3132,3195,3258,3321,3384,3447,3510]
ghci> take 54 [171, 244..]
[171,244,317,390,463,536,609,682,755,828,901,974,1047,1120,1193,1266,1339,1412,1485,1558,1631,1704,1777,1850,1923,1996,2069,2142,2215,2288,2361,2434,2507,2580,2653,2726,2799,2872,2945,3018,3091,3164,3237,3310,3383,3456,3529,3602,3675,3748,3821,3894,3967,4040]
Run Code Online (Sandbox Code Playgroud)为什么?
在ggplot2,如何引用带空格的变量名?
为什么在带引号的变量名上使用qplot()和ggplot()中断?
例如,这有效:
qplot(x,y,data=a)
Run Code Online (Sandbox Code Playgroud)
但这不是:
qplot("x","y",data=a)
Run Code Online (Sandbox Code Playgroud)
我问,因为我经常在名称中有空格的数据矩阵.例如,"国家收入".ggplot2需要数据帧; 好的,我可以转换.所以我想尝试类似的东西:
qplot("State Income","State Ideology",data=as.data.frame(a.matrix))
Run Code Online (Sandbox Code Playgroud)
那失败了.
而在基础R图形中,我会这样做:
plot(a.matrix[,"State Income"],a.matrix[,"State Ideology"])
Run Code Online (Sandbox Code Playgroud)
哪个会奏效.
有任何想法吗?
我从数据框中得到以下数据
Name,JoiningDate,AmtPaid
Joe,12/31/09,1000
Amy,10/28/09,100
John,05/06/10,200
Run Code Online (Sandbox Code Playgroud)
加入日期是一个因素(当我sapply).如何将此转换为日期然后排序JoiningDate?
我有像这样的数据
data = as.data.frame( rbind( c("1492", "Columbus sailed the ocean blue"),
c("1976", "Americans listened to Styx"),
c("2008", "financial meltdown. great.")
))
Run Code Online (Sandbox Code Playgroud)
我想建立一个情节ggplot2,将显示时间aes(x=$V1)和文字的箭头aes(label=$V2).在我试图绘制它之前,这听起来很简单.
更新:我没有写它,但你需要做as.Date("1492", format="%Y")正确的重现.
注意:下面给出的解决方案仅处理在特定日期发生的事件 - 而不是具有"期间"或"时代"的时间线.