Description Usage Arguments Details Value Note Author(s) References See Also Examples
Convert a byte-code function to an interpreted-code function
1 2 3 | unByteCode(fun)
assignEdgewise(name, env, value)
unByteCodeAssign(fun)
|
fun |
function to be modified |
name |
object name |
env |
namespace |
value |
new function body |
The purpose of these functions is to allow a byte coded function to be converted back into a fully interpreted function as a temporary work around for issues in byte-code interpretation.
unByteCode
returns a copy of the function that is directly interpreted
from text rather than from byte-code.
assignEdgewise
makes an assignment into a locked environemnt.
unByteCodeAssign
changes the specified function in its source
environment to be directly interpreted from text rather than from byte-code.
All three functions return a copy of the modified function or assigned value.
These functions are not intended as a permanent solution to issues with byte-code compilation or interpretation. Any such issues should be promptly reported to the R maintainers via the R Bug Tracking System at https://bugs.r-project.org and via the R-devel mailing list https://stat.ethz.ch/mailman/listinfo/r-devel.
Gregory R. Warnes greg@warnes.net
These functions were inspired as a work-around to R bug https://bugs.r-project.org/bugzilla/show_bug.cgi?id=15215.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | data(badDend)
dist2 <- function(x) as.dist(1-cor(t(x), method="pearson"))
hclust1 <- function(x) hclust(x, method = "single")
distance <- dist2(badDend)
cluster <- hclust1(distance)
dend <- as.dendrogram(cluster)
## Not run:
## In R 2.3.0 and earlier crashes with a node stack overflow error
plot(dend)
## Error in xy.coords(x, y, recycle = TRUE) : node stack overflow
## End(Not run)
## convert stats:::plotNode from byte-code to interpreted-code
unByteCodeAssign(stats:::plotNode)
# increase recursion limit
options("expressions"=5e4)
# now the function does not crash
plot(dend)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.