Für solche data.frame
verwenden top_n ich eine Funktion machen möchten, dass die 5 größten Beobachtungen von ausgewählten Variablen zurück:Wie in R-Funktion
df1 <- structure(list(Yta = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L
), Rad = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), Planta = c(1L,
2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L), Sortnr = c(8213L, 513L,
8060L, 8093L, 2131L, 8200L, 2378L, 8135L, 8156L, 8256L), Dia12 = c(53L,
29L, NA, NA, 53L, 6L, 20L, NA, 13L, 20L), Dia34 = c(177L, 39L,
NA, NA, 0L, 77L, 101L, NA, 77L, 95L), Vit34 = c(2L, 1L, NA, NA,
2L, 1L, 2L, NA, 1L, 1L), Ska1 = c(NA, 542L, NA, NA, 634L, NA,
NA, NA, NA, NA), Ska2 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Dia34_2 = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), block1 = c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L), block = c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L), x = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2), y = c(1,
2, 3, 4, 5, 6, 1, 2, 3, 4), id = c("1:1:1", "1:1:2", "1:1:3",
"1:1:4", "1:1:5", "1:1:6", "1:2:1", "1:2:2", "1:2:3", "1:2:4"
)), .Names = c("Yta", "Rad", "Planta", "Sortnr", "Dia12", "Dia34",
"Vit34", "Ska1", "Ska2", "Dia34_2", "block1", "block", "x", "y",
"id"), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
Ich möchte dplyr
verwenden, wie ich es mag! Ich habe eine solche Funktion versucht, aber mit dem Fehler! Ich gues das Ding ist mit dem dritten Argument der Funktion, die nicht erkannt wird. Wurde für einen Tipp dankbar sein, wie dieses Problem
prMval <- function(df, sort, varia){
df %>% #filter(Sortnr == sort) %>%
#filter(!(Rad %in% c(min(Rad), max(Rad))) & !(Planta %in% c(min(Planta), max(Planta)))) %>%
top_n(5, varia)
}
prMval(df1, 2, Dia34)
Error: object 'varia' not found
das zweite Argument zu top_n() ist ein numerisches Recht. daher muss es df $ Dia34 ODER innerhalb der Funktion verwenden df [[Dia34]] aber dann prMval (df, 2, "Dia34") –
Ich bekomme keinen Fehler, wenn ich Ihren Code ausführen, es gibt nur eine zurück leerer tibble Datenrahmen für mich. –
versuche es jetzt, ich musste einige Beobachtungen im Datenrahmen, so dass der Filter alle Beobachtung – Mateusz1981