所以,假設我有以下資料框:
df1 <- data.frame(var = c('A', 'A', 'A', 'A', 'D', 'A', 'A', 'A', 'A', 'A'),
res = c(100, 100, 100, 100, 100, 100, 101, 101, 101, 101))
我的實際資料集要大得多。我希望 R 將 D100 識別為奇數。為此,我做了:
df2 <- df1 %>%
group_by(var, res) %>%
summarise(total_count=n()) %>% drop_na() %>%
group_by(res) %>%
summarise(total_count=n())
df3 <- df2[df2$total_count>1, ]
然后告訴我,值 100 出現兩次與兩個字母相關聯。有沒有辦法簡化這個?特別是,如果我能問 R“哪個數字與多個類別相關聯?”那就太好了。并準確指出發生這種情況的資料框中的條目。這段代碼做到了這一點,但對我來說它看起來很亂,它并沒有準確地告訴我資料框中的位置,只是為我指明了正確的方向。
uj5u.com熱心網友回復:
你可以做兩個counts 和filter:
library(dplyr)
df1 %>%
count(res, var) %>%
count(res)
# res n
#1 100 2
#2 101 1
df1 %>%
count(res, var) %>%
count(res) %>%
filter(n > 1)
# res n
#1 100 2
要發現該行,您可以使用interaction:
df1[interaction(df1) == names(which(table(interaction(df1)) == 1)), ]
# var res
#5 D 100
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521661.html
標籤:r数据框通过...分组
下一篇:在單個列中匯總多個二進制變數
