Я хочу найти n-е наименьшее число для каждого столбца в data.frame.N-е наименьшее значение для каждого столбца в data.frame в R
В приведенном ниже примере я указываю фактически второе наименьшее значение, используя функцию dcast nth. Может кто-нибудь помочь с кодированием функции?
library(vegclust)
library(dplyr)
data(wetland)
dfnorm = decostand(wetland,"normalize")
dfchord = dist(dfnorm, method = "euclidean")
dfchord = data.frame(as.matrix(dfchord)
number_function = function(x) nth(x,2) # can change 2 to any number..
answer_vector = apply(dfchord, 2, number) # here, 2 specifying apply on columns
Фактический ответ будет что-то вроде этого ..
ans = c(0.5689322,0.579568297,0.315017693,0.315017693,0.632246369, 0.868563003, 0.704638684, 0.35827587, 0.725220337, 0.516397779) # length of 1:38
Это звучит как немного странным, что нужно сделать. Чтобы сделать это более читаемым для себя и ваших коллег в будущем, вы можете захотеть [расплавить] (http://seananderson.ca/2013/10/19/reshape.html), а затем [split-apply-comb] (http://stackoverflow.com/questions/26664644/use-dplyrs-group-by-to-perform-split-apply-combine) – citynorman