[英]Mutating variable based upon conditional evaluation of multiple columns in dplyr chain
[英]Mutating a binary variable based on continuous variable values (dplyr)
我有一個 Reddit 用戶和他們的帖子的數據集,我正在嘗試創建一個指示變量,如果用戶有許多帖子在第 80 個百分位,則編碼為 1,否則為 0。 我基本上對將用戶分類為“主動”用戶和“被動”用戶很感興趣。
我創建了一個變量來計算用戶名的帖子數量:
df <-
df %>% group_by(username) %>% mutate(count = n())
#count(username, sort = TRUE)
這是一個數據示例:
df %>%
select(username, count) %>%
head(., 4)
輸出:
username
cyz
crash
conan
xyz
<chr>
count
14
12
7
13
<int>
我嘗試了以下方法來識別在前 20 個百分位數中有許多帖子的用戶:
df %>%
group_by(username) %>%
do(tidy(t(quantile(.$count))))
但我不斷收到以下錯誤消息:“請參閱幫助(“已棄用”)警告:'tidy.numeric' 已棄用。”
您可以使用 mutate 來獲取一個新列,其中的活動編碼如您所期望的那樣。
df <- data.frame(username = LETTERS[1:10],
count = round(replicate(10, rnorm(1, 50, 5))))
username count
1 A 47
2 B 48
3 C 57
4 D 55
5 E 50
6 F 57
7 G 54
8 H 54
9 I 53
10 J 43
df %>% mutate(active = ifelse(count > quantile(count, 0.8), 1, 0))
1 A 47 0
2 B 48 0
3 C 57 1
4 D 55 0
5 E 50 0
6 F 57 1
7 G 54 0
8 H 54 0
9 I 53 0
10 J 43 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.