Supponiamo che io sono un programmatore pigro con le cattive abitudini (che è anche non sapere di plyr/dplyr), mi piace fare operazioni come questa:C'è un modo per chiamare la funzione `[<-` in` [`form?
`[<-`((z<-reshape2::melt(iris)), z[,"value"]>5, 3, 100)
Melt iris
, quindi assegnare il valore 100 al righe in cui lo value
è maggiore di 5, quindi restituisce tutte le righe, non solo le righe selezionate. Questa funzione è descritta nella pagina per ?"["
Lo stesso codice con replace()
(ben quasi lo stesso)
z[,"value"] <- replace(i <- ((z <- reshape2::melt(iris))[,"value"]), i > 5, 100)
1) Ma la domanda è: esiste un modo per chiamare la funzione [<-
utilizzando lo standard notazione parentesi iris[<-, blah, blah, blah, ?]
?
modifica luglio 2016: quindi lo scopo di questa domanda NON è quello di replicare l'operazione. I dati non contano, l'esempio non ha importanza, il modo complesso di rimodellare i dati non ha importanza.
È possibile definire una funzione '\' [.myClass \ '<- function (stuff) assegna (stuff)' o qualcosa di simile e quindi 'class (iris) <-" myClass "' –
'' [.myClass' <- function (...) '[< -' (...); class (iris) <- c ("myClass", classe (iris)) '' or '' cake = function (...) '[<-' (...)' 'sono soluzioni valide ma richiedono dichiarazioni di funzione, che è chiaramente contro i desideri di un programmatore pigro. Non riesco a ottenere il vantaggio 'di presentarsi. – Vlo
Hmm, forse il programmatore dovrebbe smettere di essere così pigro e mettere un po 'di lavoro ... haha :) –