[問題] 如何將一個欄位按降冪排列變成另一個欄位

作者: henry48124 (= =)   2017-08-12 18:17:01
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
各位大大好,我有一筆資料長得像是:
head(df)
id place count
1 A 1
1 B 1
2 B 1
2 C 3
3 D 2
4 A 1
4 C 2
4 D 5
5 B 1
我希望能讓他變成
id count top_place1 top_place2
1 2 A B
2 4 C B
3 2 D
4 8 D C
5 1 B
[程式範例]:
這是我目前的做法,總覺得寫得怪怪的,如果未來要做到 top100 就不能這樣寫
謝謝各位 Orz
library(dplyr)
answer <- NULL
for(x in as.list(unique(df$id))) {
df_id <- df %>%
filter(id == x) %>%
arrange(-count)
count <- sum(df$count)
top_place1 <- NA
top_place2 <- NA
col <- c(x, count, top_place1, top_place2)
for(y in 1:nrow(df_id)) {
if(y <= 2) {
col[y+2] <- df_id[y,]$place
}
answer <- rbind(answer, col)
}
[環境敘述]:
[關鍵字]:
作者: andrew43 (討厭有好心推文後刪文者)   2017-08-13 03:38:00
同id下次數相同的place如何安排top_place?前後順序?

Links booklink

Contact Us: admin [ a t ] ucptt.com