Estou escrevendo uma função para cifrar pequenas frases e acabo tendo a frase inicial ( w0
) e sua versão criptografada ( w1
).
Gostaria de inserir ambos w0
e w1
em um objeto que é retornado pela função, e atualmente estou fazendo isso usandolist()
Entretanto, se eu salvá-lo em um objeto (chamado TEST no código) e depois chamá-lo, tanto a frase inicial quanto a criptografada são impressas, o que não é o ideal para mim.
Gostaria de ter a possibilidade de salvar a saída em um objeto que, quando chamado ingenuamente, mostre apenas o primeiro elemento (a palavra inicial), com a possibilidade de imprimir o segundo quando necessário especificamente, talvez usando $
.
Isso é possível? Obrigado!
Minha função atual comlist()
cipher <- function(word){
w0 <- tolower(unlist(strsplit(word, "")))
w1 <- c()
shuffledletters <- sample(letters)
for (i in (1:length(w0))) {
w1[i] <- ifelse(w0[i] %in% letters,
shuffledletters[which(w0[i]==letters)], " ")
}
out <- list(w0,w1)
return(out)
}
O que eu ganho agora:
TEST <- cipher("hello world")
TEST
[[1]]
[1] "h" "e" "l" "l" "o" " " "w" "o" "r" "l" "d"
[[2]]
[1] "p" "s" "r" "r" "a" " " "y" "a" "j" "r" "m"
O que eu gostaria de ter como saída (sei que com listas isso não é possível)
TEST
[1] "h" "e" "l" "l" "o" " " "w" "o" "r" "l" "d"
TEST$initial
[1] "h" "e" "l" "l" "o" " " "w" "o" "r" "l" "d"
TEST$encrypted
[1] "p" "s" "r" "r" "a" " " "y" "a" "j" "r" "m"
Este parece ser um bom exemplo para criar sua própria classe (veja
?class
), com um método print personalizado. Por exemplo: