我正在尝试qdap::multigsub
解决气候事件类型列表中的一些拼写错误、拼写错误的名称、变体表达式和其他一些“异常”(是的,这是 NOAA 的风暴数据集,属于课程中的一项作业关于可重复研究的课程;尽管在作业中既不需要也不需要这种修复:这是我尽我所能!)。
所以我有名为“山洪”、“山洪”、“山洪”之类的事件,我想将它们全部归为一个名为“山洪”的关卡。所以我首先做的是:
expr <- c("^flash.*floo.*","thun.*")
repl <- c("flash flood","thunderstorm")
每个向量的长度是 51,这是一个knitr
赋值,所以为了保持它的可读性(边距列 = 80),我不得不使用类似的东西
expr <- c(expr,"new_expr_1","new_expr_2")
repl <- c(repl,"new_repl_1","new_repl_2") # repeated many, many times
这使得代码有点混乱。当然,我有完整的expr
和repl
向量,所以我希望将每一对(expr 和 repl)对应的值排成一行,这样代码的读者就会很轻松(这就是为什么dput
不能在这里工作的原因:他们不对齐每对值)。
我试过这个:
a <- data.frame(expr=expr,repl=repl)
print(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它失败了(我认为是因为print
抛出不带引号的输出并且有一些两个词的 expr 或 repl)。我也试过
write.table(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它也不起作用(我认为因为write.table
在引号之间输出每个项目,并且read.table
发现太多引号无法处理)。
我想在我的 Rmarkdown 文件中有这样的内容:
exprRepl <- read.table(header=TRUE,text="expr repl
expr_1 repl_1
expr_2 repl_2")
我如何从我现在拥有的数据中实现这一目标?
dput
数据框的前 5 行如下:
> dput(a[1:5,])
structure(list(expr = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("^BLIZZARD.*",
"^FLASH.*FLOOD.*", "^HAIL.*", "^HEAVY.*RAIN.*", "^HURRICANE.*"
), class = "factor"), repl = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("BLIZZARD",
"FLASH FLOOD", "HAIL", "HEAVY RAIN", "HURRICANE"), class = "factor")), .Names = c("expr",
"repl"), row.names = c(NA, 5L), class = "data.frame")
如果有任何其他方法可以替换错误/变体名称,我很高兴收到并试一试!