【发布时间】:2018-10-05 11:21:17
【问题描述】:
我目前正在尝试在 RStudio 中运行一个脚本,其中一部分涉及从数据框中的字符串中删除标点符号。到目前为止,这是一个特别耗时的步骤,所以我想尝试插入一些输出消息,以确保它没有崩溃并且仍在运行。
我的想法是尝试在循环中放置另一个循环来删除标点符号,这将输出一个打印的消息,说明该步骤的完成百分比,但前提是百分比值为整数,以免打印一百万消息。
我尝试使用类似下面的方法,但这里最大的问题是我相当确定我错误地使用了“i”变量,所以这永远不会像我写的那样工作。因此,我希望能够修复或替代我在 if 循环中所拥有的内容。
for(i in 1:nrow(eqtls)){
eqtls$gene_id_new[i]=rem_punct(eqtls$gene_id[i])
if((i/nrow(eqtls)*(100))%%1=0){
completion = (i/nrow(eqtls))*100
message(sprintf("Percent complete: %s\n", completion))
}
}
进一步澄清:这纯粹是学术性的,因为我正在改用另一种删除标点符号的方法。
【问题讨论】:
-
这不是一个单独的
=,这是一个任务。为了比较,请使用 double==。 -
您可以使用
pbapply包中的txtProgressBar或pblapply,这将比%%噱头更轻松、更高效,但我怀疑您的rem_punct函数可以被矢量化并制作得非常快,您可能希望将其发布到codereview.stackexchange.com -
就像我在底部说的那样,整个
rem_punct函数实际上是我已经退役的一个函数,因为它解析文件的方法总体上太慢了。不过谢谢你的建议!