我目前正在尝试在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))
}
}
要进一步澄清:这现在纯粹是学术性的,因为我正在切换到另一种删除标点符号的方法。
答案 0 :(得分:0)
此链接-How to get index in a loop in R应该可以帮助您解决R中的循环问题。
通常-如果您想在循环中遍历值,则只需-
for(i in eqtls){
print(i)
}
答案 1 :(得分:0)
在一条输出行中:
eqtls <- data.frame("var1" = rep(paste(LETTERS[1:26],".",LETTERS[26:1],sep = ""),500),
stringsAsFactors = FALSE)
for(i in 1:nrow(eqtls)){
eqtls$var1[i] <- gsub("\\.","",eqtls$var1[i])
if((i/nrow(eqtls)*(100))%%1 == 0){
cat(paste(round((i/nrow(eqtls))*100,0), "%..."))
}
}
> 1 %...2 %...3 %...4 %...5 %...6 %...8 %...9 %...10 %...11 %...12 %...
13 %...15 %...16 %...17 %...18 %...19 %...20 %...21 %...22 %...23 %...
24 %...25 %...26 %...27 %...30 %...31 %...32 %...33 %...34 %...35 %...
36 %...37 %...38 %...39 %...40 %...41 %...42 %...43 %...44 %...45 %...
46 %...47 %...48 %...49 %...50 %...51 %...52 %...53 %...54 %...59 %...
60 %...61 %...62 %...63 %...64 %...65 %...66 %...67 %...68 %...69 %...
70 %...71 %...72 %...73 %...74 %...75 %...76 %...77 %...78 %...79 %...
80 %...81 %...82 %...83 %...84 %...85 %...86 %...87 %...88 %...89 %...
90 %...91 %...92 %...93 %...94 %...95 %...96 %...97 %...98 %...99 %...
100 %...