2017-08-21 1 views
1

aus einer früheren Frage Nach Filter beteiligt, dachte ich, das Muster ...Wie können Sie einem muate-Ergebnis in dplyr 0.7.x einen Charakternamen geben?

library(dplyr) 
library(rlang) 
conversion_scale_name <- "kph" 
conversion_scale_ratio <- 1.60934 
conversion_scale_sym <- sym(conversion_scale_name) 
cars %>% 
    mutate((!!conversion_scale_sym) = speed * conversion_scale_ratio) 

Allerdings wäre das nicht zu funktionieren scheint. Ich bekomme

Error: unexpected '=' in: 
" cars %>% 
     mutate((!!conversion_scale_sym) =" 

Was mache ich falsch?

P.S. Es stellt sich heraus, previous question fragte eine ähnliche Frage zum Umbenennen. Die Lösung stellt sich als gleich heraus.

+0

Ich werde es jetzt ohne Änderungen offen lassen. Die andere Frage ist um Umbenennen herum formuliert, wo dies um mutate herum formuliert wird. Obwohl die Antwort die gleiche ist, ist sie bei der Suche oder beim Tippen dieser Frage nicht aufgetaucht. – russellpierce

Antwort

3

Verwenden := mit !!, nicht nur =

cars %>% 
    mutate(!!conversion_scale_name := speed * conversion_scale_ratio) 
+0

Mehrere Dinge zu korrigieren. Ich hatte ein paar Fehler in meinem ursprünglichen Beitrag, bitte ändere 'conversion_scale_name' in' conversion_scale_sym' und 'mph' in' speed'. Als nächstes sieht es so aus, als ob deine Antwort die 'ca' von' cars' abgeschnitten hätte würdest du es bitte hinzufügen? Zuletzt sieht es so aus:: = 'entpackt das sym so das() und !! werden nicht benötigt und verursachen tatsächlich einen Fehler. Wenn Sie so freundlich sind, Ihre Antwort zu verbessern, um diese Probleme anzugehen, kann ich Ihnen das Häkchen geben. ': =' war die geheime Soße, die mir fehlte. – russellpierce

+0

Sie sollten 'sym' für diesen Zweck nicht benötigen. Ein Zeichenwert ist in Ordnung. – MrFlick

+0

Richtig du bist! Danke & Akzeptiert. – russellpierce

Verwandte Themen