[英]R: append column in a dataframe with frequency count based on two columns
我有一個像這樣的數據集:
name height
John 188
John 190
Jack 182
Jack 174
Jack 174
而且我需要在不修改數據集結構的情況下添加一列基於(名稱)和(高度)的頻率計數,例如:
name height occurrence
John 188 1
John 190 1
Jack 182 1
Jack 174 2
Jack 174 2
有一個班輪嗎? 我環顧四周,但似乎找不到答案。 謝謝
使用data.table
可以使用(感謝@David Arenburg的改進)
require(data.table)
setDT(df1)[, occurrence := .N, by = .(name, height)]
我的原始答案(它復制了通過:=
引用添加的數據)
require(data.table)
setDT(df1)[,rep(.N,.N),.(name, height)]
您可以使用base R
ave
之類的函數
ave(1:nrow(df), paste(df$name, df$height), FUN = length)
# [1] 1 1 1 2 2
您也可以使用dplyr
:
require(dplyr)
data %>%
group_by(name,height) %>%
mutate(new = n()) %>%
data.frame()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.