Mit als.numerische, mit Funktionen und-Rohre in R
Ich habe eine Funktion, die wie folgt aussieht
calc_df <- function(A_df, B_df){
C_df <- filter(A_df, Type == "Animal") %>%
left_join(B_df) %>%
as.numeric(C$Count)
Wo ich nicht den letzten Kalk zu arbeiten, die ersten 3 funktionieren einwandfrei, aber ich möchte die Letzte Zeile zu nehmen, die Spalte "Count" aus der neuen df berechnet die Funktion und stellen Sie es numerisch. (Jetzt ist es ein Charakter-Vektor)
** Ich habe dazu am Ende der Funktion, weil vor dem filter-Befehl die Spalte "Anzahl" enthält Briefe und kann nicht gemacht werden.numerische
- Bitte geben Sie einige reproduzierbare Beispiel
- legen Sie es in
mutate
? odertransmutate
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie du bist mit
dplyr
, und, die Sie ändern möchten, oder eine Spalte hinzufügen. Dies ist, was diedplyr::mutate
Funktion hat.Ersetzen
mit
ersetzen die alten, nicht-numerische
Count
Spalte mit der aufgezwungenen-zu-numerisch-Ersatz.Warum dein code nicht funktioniert, gibt es ein paar Probleme:
dplyr
ist gemacht für die Arbeit mit Daten-frames, und die wichtigsten dplyr-Funktionen (suchen, filtern, mutieren, zusammenfassen, group_by, *_join, ...) erwarten, dass Daten-frames als erstes argument, und dann wieder Daten-frames. Von Rohrleitungen das Ergebnis einer left join-inas.numeric
sind Sie wirklich anrufenas.numeric(unnamed_data_frame_from_your_join, C$Count)
, die klar macht nicht viel Sinn.Sie versuchen, auf ein Daten-frame genannt
C
im inneren eine definition für ein data frame namensC_df
, die ich denke, Sie bedeuten die gleiche Sache. Es gibt hier zwei Probleme: (1) die Diskrepanz zwischen den NamenC
undC_df
, und (2) Sie können keine ReferenzC_df
innen ist es, eine eigene definition.