¿Cómo cargo conjuntos de datos de ejemplo en R?
Pregunta
Digamos que quiero reproducir un ejemplo publicado en StackOverflow. Algunos han sugerido que los carteles utilicen dput ()
para ayudar a simplificar este proceso o uno de los conjuntos de datos disponibles en el paquete base .
En este caso, sin embargo, supongamos que solo se me ha dado la salida del marco de datos:
> site.data
site year peak
1 ALBEN 5 101529.6
2 ALBEN 10 117483.4
3 ALBEN 20 132960.9
8 ALDER 5 6561.3
9 ALDER 10 7897.1
10 ALDER 20 9208.1
15 AMERI 5 43656.5
16 AMERI 10 51475.3
17 AMERI 20 58854.4
¿Tengo otras opciones además de guardar esto como un archivo de texto y usar read.table ()
?
Solución 2
Aquí hay una opción útil:
site.data <- read.table(textConnection(
" site year peak
1 ALBEN 5 101529.6
2 ALBEN 10 117483.4
3 ALBEN 20 132960.9
8 ALDER 5 6561.3
9 ALDER 10 7897.1
10 ALDER 20 9208.1
15 AMERI 5 43656.5
16 AMERI 10 51475.3
17 AMERI 20 58854.4"))
Otros consejos
Esa es una buena solución. Supongo que hay una manera de hacer esto con RCurl, como en esta publicación que eliminó wikipedia .
Pero como un punto de discusión más general: ¿por qué no solo usamos datos de los conjuntos de datos " paquete en R? Entonces todos tendrán los datos simplemente llamando a la función data (), y hay conjuntos de datos para cubrir la mayoría de los casos.
[Editar]: pude hacer esto. Es claramente más trabajo (es decir, poco práctico) que su solución. :)
[Editar 2]: envolví esto en una función y lo probé con otra página.
getSOTable <- function(url, code.block=2, raw=FALSE, delimiter="code") {
require(RCurl)
require(XML)
webpage <- getURL(url)
webpage <- readLines(tc <- textConnection(webpage)); close(tc)
pagetree <- htmlTreeParse(webpage, error=function(...){}, useInternalNodes = TRUE)
x <- xpathSApply(pagetree, paste("//*/", delimiter, sep=""), xmlValue)[code.block]
if(raw)
return(strsplit(x, "\n")[[1]])
else
return(read.table(textConnection(strsplit(x, "\n")[[1]][-1])))
}
getSOTable("https://stackoverflow.com/questions/1434897/how-do-i-load-example-datasets-in-r")
site year peak
1 ALBEN 5 101529.6
2 ALBEN 10 117483.4
3 ALBEN 20 132960.9
8 ALDER 5 6561.3
9 ALDER 10 7897.1
10 ALDER 20 9208.1
15 AMERI 5 43656.5
16 AMERI 10 51475.3
17 AMERI 20 58854.4
getSOTable("https://stackoverflow.com/questions/1428174/quickly-generate-the-cartesian-product-of-a-matrix", code.block=10)
X1 X2 X3 X4
1 1 11 1 11
2 1 11 2 12
3 1 11 3 13
4 1 11 4 14
5 1 11 5 15
6 1 11 6 16
7 1 11 7 17
8 1 11 8 18
9 1 11 9 19
10 1 11 10 20