Licença
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Introdução
O objetivo deste post é mostrar como você pode extrair o código, ou script, de dentro de um post do Rpubs. Seguiremos a rotina do código original do pacote, disponível em https://rdrr.io/cran/rpubs/man/rpubs_code.html.
Sempre recomendo começar criando um novo projeto.
Exemplo 1
Seja o post de envio automatizado de e-mails a partir do R, disponível em https://rpubs.com/aephidayatuloh/sendgmail.
Eu quero extrair apenas o código R para um arquivo de script de extensão .R
.
Primeiro carrego o pacote rpubs
(que foi previamente instalado do CRAN) e depois rodo a função rpubs_code
. Se especificar files = NULL
, o script extraído será impresso no console ou como vetor. Um bloco de código é um elemento do vetor.
library(rpubs)
rpubs_code(url = "https://rpubs.com/aephidayatuloh/sendgmail", path = "send_email.R", output = FALSE)
Então terei esse código em um arquivo de script. Compare os dois códigos, do post e o extraído.
Pronto.
Exemplo 2
Seja meu próprio post do Rpubs disponível em https://rpubs.com/amrofi/exemplos_sidra.
A rotina será por meio do chunk abaixo.
library(rpubs)
rpubs_code(url = "https://rpubs.com/amrofi/exemplos_sidra", path = "exemplos_sidra.R", output = FALSE)
Pronto. O script estará em seu diretório de projeto.
Exemplo 3
Seja um código sem chunks aparentes, como em um slide https://rpubs.com/AI_Economist/ML_AI_Coronavirus. Como fica?
A rotina será por meio do chunk abaixo.
library(rpubs)
rpubs_code(url = "https://rpubs.com/AI_Economist/ML_AI_Coronavirus", path = "ML_AI.R", output = FALSE)
O script estará em seu diretório de projeto, mas constará apenas do site fonte, mas sem nenhum código, pois o pacote extrai apenas code
. Não extrai o que está no rmarkdown ou latex.
LS0tDQp0aXRsZTogIkV4dHJhaW5kbyBvIGPDs2RpZ28gZGUgdW0gcG9zdCBkbyBScHVicyINCmF1dGhvcjogIkFkcmlhbm8gTWFyY29zIFJvZHJpZ3VlcyBGaWd1ZWlyZWRvLCAqZS1tYWlsOiBhZHJpYW5vLmZpZ3VlaXJlZG9AdWZtcy5icioiDQphYnN0cmFjdDogDQogIFRoaXMgaXMgYW4gdW5kZXJncmFkIHN0dWRlbnQgbGV2ZWwgZXhlcmNpc2UgZm9yIGNsYXNzIHVzZS4gV2UgZXh0cmFjdCBhIFJwdWJzIGNvZGUuIA0KZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJWQgJUIgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgdGhlbWU6IGRlZmF1bHQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICB3b3JkX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQotLS0NCg0KIyBMaWNlbsOnYSB7I0xpY2Vuw6dhIC51bm51bWJlcmVkfQ0KDQpUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiBUbyB2aWV3IGEgY29weSBvZiB0aGlzIGxpY2Vuc2UsIHZpc2l0IDxodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvPiBvciBzZW5kIGEgbGV0dGVyIHRvIENyZWF0aXZlIENvbW1vbnMsIFBPIEJveCAxODY2LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MiwgVVNBLg0KDQohW0xpY2Vuc2U6IENDIEJZLVNBIDQuMF0oaHR0cHM6Ly9taXJyb3JzLmNyZWF0aXZlY29tbW9ucy5vcmcvcHJlc3NraXQvYnV0dG9ucy84OHgzMS9wbmcvYnktc2EucG5nKXt3aWR0aD0iMjUlIn0NCg0KIyBDaXRhw6fDo28geyNDaXRhw6fDo28gLnVubnVtYmVyZWR9DQoNClN1Z2VzdMOjbyBkZSBjaXRhw6fDo286IEZJR1VFSVJFRE8sIEFkcmlhbm8gTWFyY29zIFJvZHJpZ3Vlcy4gRXh0cmFpbmRvIG8gY8OzZGlnbyBkZSB1bSBwb3N0IGRvIFJwdWJzLiBDYW1wbyBHcmFuZGUtTVMsQnJhc2lsOiBSU3R1ZGlvL1JwdWJzLCAyMDIwLiBEaXNwb27DrXZlbCBlbSA8aHR0cDovL3JwdWJzLmNvbS9hbXJvZmkvZXh0cmFjdF9ycHVic19jb2RlPi4NCg0KIyBJbnRyb2R1w6fDo28NCg0KTyBvYmpldGl2byBkZXN0ZSBwb3N0IMOpIG1vc3RyYXIgY29tbyB2b2PDqiBwb2RlIGV4dHJhaXIgbyBjw7NkaWdvLCBvdSBzY3JpcHQsIGRlIGRlbnRybyBkZSB1bSBwb3N0IGRvIFJwdWJzLiBTZWd1aXJlbW9zIGEgcm90aW5hIGRvIGPDs2RpZ28gb3JpZ2luYWwgZG8gcGFjb3RlLCBkaXNwb27DrXZlbCBlbSA8aHR0cHM6Ly9yZHJyLmlvL2NyYW4vcnB1YnMvbWFuL3JwdWJzX2NvZGUuaHRtbD4uDQoNClNlbXByZSByZWNvbWVuZG8gY29tZcOnYXIgY3JpYW5kbyB1bSBub3ZvIHByb2pldG8uDQoNCiMgRXhlbXBsbyAxDQoNClNlamEgbyBwb3N0IGRlIGVudmlvIGF1dG9tYXRpemFkbyBkZSBlLW1haWxzIGEgcGFydGlyIGRvIFIsIGRpc3BvbsOtdmVsIGVtIFtodHRwczovL3JwdWJzLmNvbS9hZXBoaWRheWF0dWxvaC9zZW5kZ21haWwuXShodHRwczovL3JwdWJzLmNvbS9hZXBoaWRheWF0dWxvaC9zZW5kZ21haWwuRXUpDQoNCkV1IHF1ZXJvIGV4dHJhaXIgYXBlbmFzIG8gY8OzZGlnbyBSIHBhcmEgdW0gYXJxdWl2byBkZSBzY3JpcHQgZGUgZXh0ZW5zw6NvIGAuUmAuDQoNClByaW1laXJvIGNhcnJlZ28gbyBwYWNvdGUgYHJwdWJzYCAocXVlIGZvaSBwcmV2aWFtZW50ZSBpbnN0YWxhZG8gZG8gQ1JBTikgZSBkZXBvaXMgcm9kbyBhIGZ1bsOnw6NvIGBycHVic19jb2RlYC4gU2UgZXNwZWNpZmljYXIgYGZpbGVzID0gTlVMTGAsIG8gc2NyaXB0IGV4dHJhw61kbyBzZXLDoSBpbXByZXNzbyBubyBjb25zb2xlIG91IGNvbW8gdmV0b3IuIFVtIGJsb2NvIGRlIGPDs2RpZ28gw6kgdW0gZWxlbWVudG8gZG8gdmV0b3IuDQoNCmBgYHtyfQ0KbGlicmFyeShycHVicykNCnJwdWJzX2NvZGUodXJsID0gImh0dHBzOi8vcnB1YnMuY29tL2FlcGhpZGF5YXR1bG9oL3NlbmRnbWFpbCIsIHBhdGggPSAic2VuZF9lbWFpbC5SIiwgb3V0cHV0ID0gRkFMU0UpDQoNCmBgYA0KDQpFbnTDo28gdGVyZWkgZXNzZSBjw7NkaWdvIGVtIHVtIGFycXVpdm8gZGUgc2NyaXB0LiBDb21wYXJlIG9zIGRvaXMgY8OzZGlnb3MsIGRvIHBvc3QgZSBvIGV4dHJhw61kby4NCg0KIVtGaWd1cmEgMTogQ8OzZGlnbyBkbyBwb3N0LiBGb250ZTogPGh0dHBzOi8vcnB1YnMuY29tL2FlcGhpZGF5YXR1bG9oL3NlbmRnbWFpbD5dKGNvZGVfcG9zdC5wbmcgIkPDs2RpZ28gZG8gcG9zdCIpDQoNCiFbRmlndXJhIDI6IEPDs2RpZ28gZXh0cmHDrWRvLiBGb250ZTogW2h0dHBzOi8vcmRyci5pby9jcmFuL3JwdWJzL21hbi9ycHVic1xcXF9jb2RlLmh0bWxdKGh0dHBzOi8vcmRyci5pby9jcmFuL3JwdWJzL21hbi9ycHVic1xfY29kZS5odG1sKXsudXJpfV0oQ29kZV9leHRyYWN0ZWQucG5nICJDw7NkaWdvIGV4dHJhw61kbyBkbyBycHVic19jb2RlIikNCg0KUHJvbnRvLg0KDQojIEV4ZW1wbG8gMg0KDQpTZWphIG1ldSBwcsOzcHJpbyBwb3N0IGRvIFJwdWJzIGRpc3BvbsOtdmVsIGVtIDxodHRwczovL3JwdWJzLmNvbS9hbXJvZmkvZXhlbXBsb3Nfc2lkcmE+Lg0KDQpBIHJvdGluYSBzZXLDoSBwb3IgbWVpbyBkbyBjaHVuayBhYmFpeG8uDQoNCmBgYHtyfQ0KbGlicmFyeShycHVicykNCnJwdWJzX2NvZGUodXJsID0gImh0dHBzOi8vcnB1YnMuY29tL2Ftcm9maS9leGVtcGxvc19zaWRyYSIsIHBhdGggPSAiZXhlbXBsb3Nfc2lkcmEuUiIsIG91dHB1dCA9IEZBTFNFKQ0KDQpgYGANCg0KUHJvbnRvLiBPIHNjcmlwdCBlc3RhcsOhIGVtIHNldSBkaXJldMOzcmlvIGRlIHByb2pldG8uDQoNCiMgRXhlbXBsbyAzDQoNClNlamEgdW0gY8OzZGlnbyBzZW0gY2h1bmtzIGFwYXJlbnRlcywgY29tbyBlbSB1bSBzbGlkZSA8aHR0cHM6Ly9ycHVicy5jb20vQUlfRWNvbm9taXN0L01MX0FJX0Nvcm9uYXZpcnVzPi4gQ29tbyBmaWNhPw0KDQpBIHJvdGluYSBzZXLDoSBwb3IgbWVpbyBkbyBjaHVuayBhYmFpeG8uDQoNCmBgYHtyfQ0KbGlicmFyeShycHVicykNCnJwdWJzX2NvZGUodXJsID0gImh0dHBzOi8vcnB1YnMuY29tL0FJX0Vjb25vbWlzdC9NTF9BSV9Db3JvbmF2aXJ1cyIsIHBhdGggPSAiTUxfQUkuUiIsIG91dHB1dCA9IEZBTFNFKQ0KYGBgDQoNCk8gc2NyaXB0IGVzdGFyw6EgZW0gc2V1IGRpcmV0w7NyaW8gZGUgcHJvamV0bywgbWFzIGNvbnN0YXLDoSBhcGVuYXMgZG8gc2l0ZSBmb250ZSwgbWFzIHNlbSBuZW5odW0gY8OzZGlnbywgcG9pcyBvIHBhY290ZSBleHRyYWkgYXBlbmFzIGBjb2RlYC4gTsOjbyBleHRyYWkgbyBxdWUgZXN0w6Egbm8gcm1hcmtkb3duIG91IGxhdGV4Lg0KDQojIFJlZmVyw6puY2lhcw0KDQpGSUdVRUlSRURPLCBBZHJpYW5vIE1hcmNvcyBSb2RyaWd1ZXMuIEV4ZW1wbG9zIHBhcmEgZGFkb3MgZGUgdHJhYmFsaG8gZGEgUE5BREMgb2J0aWRvcyBubyBTSURSQS1JQkdFLiBDYW1wbyBHcmFuZGUtTVMsQnJhc2lsOiBSU3R1ZGlvL1JwdWJzLCAyMDIwLiBEaXNwb27DrXZlbCBlbSA8aHR0cDovL3JwdWJzLmNvbS9hbXJvZmkvZXhlbXBsb3Nfc2lkcmE+Lg0KDQpISURBWUFUVUxPSCwgQWVwLiBycHViczogRXh0cmFjdCBDb2RlIEJsb2NrIGZyb20gUnB1YnMgQXJ0aWNsZS4gUiBwYWNrYWdlIHZlcnNpb24gMC4yLjIuIDIwMjAuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9DUkFOLlItcHJvamVjdC5vcmcvcGFja2FnZT1ycHVicz4NCg==