আমি এই সমস্ত অপশনটি সন্ধান করছিলাম এবং তাদের আপেক্ষিক বৈশিষ্ট্য এবং পারফরম্যান্স সম্পর্কে অবাক হতে শুরু করেছি, তাই আমি কিছু পরীক্ষা করেছি। যদি অন্য কারও বিষয়ে কৌতূহলী হয় তবে আমি এখানে আমার ফলাফলগুলি ভাগ করছি।
এখানে পোস্ট করা সমস্ত ফাংশন সম্পর্কে মাথা ঘামানোর ইচ্ছে করে না, আমি কয়েকটি মানদণ্ডের উপর ভিত্তি করে একটি নমুনায় ফোকাস করা বেছে নিয়েছি: ফাংশনটি চরিত্র, গুণক, লজিকাল এবং সংখ্যাসূচক ভেক্টর উভয়কেই নিয়ে কাজ করা উচিত, এটি এনএ এবং অন্যান্য সমস্যাযুক্ত মানগুলি যথাযথভাবে মোকাবেলা করা উচিত, এবং আউটপুটটি 'বোধগম্য' হওয়া উচিত, অর্থাত্ চরিত্র বা এই জাতীয় নির্জনতা হিসাবে কোনও সংখ্যাসূচক নয়।
আমি আমার নিজস্ব একটি ফাংশনও যুক্ত করেছি, যা rle
খ্রিস্টির মতো একই ধারণার উপর ভিত্তি করে আরও সাধারণ ব্যবহারের জন্য অভিযোজিত ব্যতীত:
library(magrittr)
Aksel <- function(x, freq=FALSE) {
z <- 2
if (freq) z <- 1:2
run <- x %>% as.vector %>% sort %>% rle %>% unclass %>% data.frame
colnames(run) <- c("freq", "value")
run[which(run$freq==max(run$freq)), z] %>% as.vector
}
set.seed(2)
F <- sample(c("yes", "no", "maybe", NA), 10, replace=TRUE) %>% factor
Aksel(F)
# [1] maybe yes
C <- sample(c("Steve", "Jane", "Jonas", "Petra"), 20, replace=TRUE)
Aksel(C, freq=TRUE)
# freq value
# 7 Steve
আমি পরীক্ষার তথ্য দুটি সেট উপর পাঁচটি ফাংশন চলমান শেষ microbenchmark
। ফাংশন নামগুলি তাদের নিজ নিজ লেখকদের উল্লেখ করুন:
ক্রিস 'ফাংশন হয় method="modes"
এবং na.rm=TRUE
ডিফল্ট ভাবে এটি আরো তুলনীয়, কিন্তু অন্যান্য তুলনায় যে ফাংশন হিসেবে তাদের লেখক দ্বারা এখানে উপস্থাপন করা হয় না।
গতির ক্ষেত্রে একাই কেনস সংস্করণ হস্তান্তরিতভাবে জয়লাভ করে, তবে এটির মধ্যে কেবলমাত্র এটিই কেবল একটি মোডের প্রতিবেদন করবে, সেখানে যতই সত্যই থাকুক না কেন। যেমনটি প্রায়শই ঘটে থাকে, গতি এবং বহুমুখীতার মধ্যে একটি বাণিজ্য রয়েছে। ইন method="mode"
, ক্রিসের সংস্করণটি যদি একটি মোড থাকে তবে মানটি ফিরিয়ে দেবে, অন্যথায় এনএ। আমি মনে করি এটি একটি দুর্দান্ত স্পর্শ। আমি আরও আকর্ষণীয় বলে মনে করি যে বর্ধিত সংখ্যক অনন্য মানের দ্বারা কিছু ফাংশন কীভাবে প্রভাবিত হয়, অন্যগুলি প্রায় ততটা নয়। কারণ হিসাবে লজিকাল / সংখ্যাসূচক অপসারণ ব্যতীত এটি কেন, তা বের করার জন্য আমি কোডটি বিশদভাবে অধ্যয়ন করি নি।