2012-12-30 56 views
0

我有下面的數據。我如何確定哪個作者的出版物數量最多?如何索引異常值?

我試試這個

(which(status$researchers==max(status$publications)) 

,但它似乎並沒有工作。

#PUBLICATIONS 

researchers = c("Smith", "Johnson", "Williams", "Brown", "Jones", "Miller", "Davis", "García", "Rodriguez", "Wilson", "Martinez", "Anderson", "Taylor", "Thomas", "Hernandez", "Moore", "Martin", "Jackson", "Thompson", "White", "Lopez", "Lee", "Gonzalez", "Harris", "Clark", "Lewis", "Robinson", "Walker", "Perez", "Hall", "Young", "Allen", "Sanchez", "Wright", "King", "Scott", "Green", "Baker", "Adams", "Nelson", "Hill", "Ramirez", "Campbell", "Mitchell", "Roberts", "Carter", "Phillips", "Evans", "Turner", "Stapel", "Torres", "Parker", "Collins", "Edwards", "Stewart", "Flores", "Morris", "Nguyen", "Murphy", "Rivera", "Cook", "Rogers", "Morgan", "Peterson", "Cooper", "Reed", "Bailey", "Bell", "Gomez", "Kelly", "Howard", "Ward", "Cox", "Diaz", "Richardson", "Wood", "Watson", "Brooks", "Bennett", "Gray", "James", "Reyes", "Cruz", "Hughes", "Price", "Myers", "Long", "Foster ", "Sanders", "Ross", "Morales", "Powell", "Sullivan", "Russell", "Ortiz", "Jenkins", "Gutierrez", "Perry", "Butler", "Barnes", "Fisher", "De Jong", "Jansen", "De Vries", "vd Berg", "Van Dijk", "Bakker", "Janssen", "Visser", "Smit", "Meijer", "De Boer", "Mulder", "De Groot", "Bos", "Smeesters", "Vos", "Peters", "Hendriks", "Van Leeuwen", "Dekker", "Brouwer", "De Wit", "Dijkstra", "Smits", "De Graaf", "Van der Meer", "Muller", "Schmidt", "Schneider", "Fischer", "Meyer", "Weber", "Schulz", "Wagner", "Becker", "Hoffmann", "Wagemakers", "Molenaar", "Jansen", "White", "Bargh", "Dijksterhuis", "Poldermans", "Kanazawa", "Lynne", "Ling", "Vorst", "Borsboom", "Wicherts") 

articles = data.frame(cbind(researchers, publications)) 
write.table(articles, file = "scientific status.txt", sep = " ") 

status = read.table("scientific status.txt", header = TRUE, sep = "", quote = "\"'")  
+0

我不認爲你如何創建數據,甚至更少的'{寫,讀}。表「步驟是相關的在這裏。如果你給出了你的數據樣本,那將會更有用,請參考http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – flodel

+0

好吧,我認爲創建能夠創建數據會很有用。 – mats

+0

但是「status」的內容是什麼?除非它們是整數,否則你不可能得到任何匹配。你的'研究員'矢量沒有數字,所以'max'將用這些字符串做有趣的事情。 –

回答

2

這不是一般的迴應,但在這裏你只需要提取重複。

researchers[duplicated(researchers)] 
[1] "Jansen" "White" ## this 2 authors have 1 publications more than others! 

要看看你能舉例來說做到這一點ouliers:

plot(table(researchers)) 

enter image description here

2

目前尚不清楚你的數據代表着什麼。如果已經每位作者的聚集,即存在每位作者的一個行和publications列包含出版物的數量,這樣做:

status$researchers[which.max(status$publications)] 

相反,如果你的數據不聚集,即存在一個每爲文章,你可以這樣做:

tail(sort(table(status$researchers)), 1) 
+0

謝謝。這有助於。那麼我想知道發表30篇文章的研究人員的名字的情況呢? – mats

+0

如果您的數據已經彙總,則「subset(status,publications> = 30)'。如果它沒有彙總,那麼哪個(表(研究人員)> = 30'。 – flodel

+0

數據確實已經彙總。 – mats