2017-12-28 4 views
0

Ich versuche abzurunden und ich bin in der Lage Basis R. mitdplyr wird nicht rund, sondern Basis-R wird

df$Variable99 <- round(df$Variable99, 2) 

Dies ist, was ich tue, und es funktioniert super. Das Problem ist: Ich habe ursprünglich versucht, alles mit dplyr zu pumpen, habe aber den seltsamen Fehler, der unten gezeigt wird.

df <- df %>% 
    round(Variable99, 2) 

Fehler in function_list [k]: Objekt 'Variable99' nicht

Variable99 ist definitiv ein Objekt in meinem Datenrahmen gefunden. Es ist ungefähr 10 Schritte, um den Datenrahmen neu zu erstellen. Gibt es genug Informationen zwischen meiner Syntax und dem Fehler, um zu sagen, was vor sich geht?

+3

du musst 'mutate' dort hinzufügen. 'df%>% muate (Variable = round (Variable99, 2)'. –

+0

Wird nicht mutieren eine neue Spalte hinzufügen? Ich möchte die gleiche Spalte "Variable99" behalten und überschreiben sie mit den gerundeten Werten. – stackinator

+3

Tun Sie so ' df%>% mutieren (Variable99 = rund (Variable99, 2) ' –

Antwort

2

Sie suchen den Befehl mutate von dplyr (das Teil des Ordyvers ist). Auf diese Weise können Sie eine neue Spalte erstellen oder eine Spalte im Datenrahmen (oder in der Zwischenablage) ändern.

Ich habe ein Beispiel unten zur Verfügung gestellt.


suppressMessages(
    library(tidyverse) 
) 
#> Warning: package 'tibble' was built under R version 3.4.3 
#> Warning: package 'dplyr' was built under R version 3.4.3 

# Create a reproducible example 
df <- tibble(Variable99 = rnorm(20)) 

# Base R round 
round(df$Variable99, 2) 
#> [1] -1.07 0.10 -1.66 -0.54 -0.76 1.19 0.76 -2.10 0.80 1.54 0.47 
#> [12] -1.03 0.33 -0.45 -0.65 2.61 -0.60 -0.15 -2.52 -0.73 

# Piping without mutate 
df %>% 
    round(Variable99, 2) 
#> Error in function_list[[k]](value): object 'Variable99' not found 

# Piping with mutate 
df %>% 
    mutate(Variable99 = round(Variable99, 2)) 
#> # A tibble: 20 x 1 
#> Variable99 
#>   <dbl> 
#> 1  -1.07 
#> 2  0.100 
#> 3  -1.66 
#> 4  -0.540 
#> 5  -0.760 
#> 6  1.19 
#> 7  0.760 
#> 8  -2.10 
#> 9  0.800 
#> 10  1.54 
#> 11  0.470 
#> 12  -1.03 
#> 13  0.330 
#> 14  -0.450 
#> 15  -0.650 
#> 16  2.61 
#> 17  -0.600 
#> 18  -0.150 
#> 19  -2.52 
#> 20  -0.730 

Hoffentlich hilft das! Es gibt einige kostenlose Vorträge über das "didyverse" auf dem Datencamp, die ich meinen Kollegen empfohlen habe, die neu bei Tidyversing sind (https://www.datacamp.com/courses/introduction-to-the-tidyverse). Sollte hoffentlich hilfreich sein!

(auch eine kleine Anmerkung: Sie erhalten in Zukunft mehr Antworten, wenn Sie ein reproduzierbares Beispiel angeben. Es ist viel einfacher, dies mit dem represx-Paket zu tun. Sie können einfach Code schreiben und dann ein RStudio-Add-In verwenden um es auszuwählen, führe es aus und hole es in das richtige Format wie ich es hier getan habe - du findest das Paket hier: https://github.com/tidyverse/reprex)

Verwandte Themen