计算R中有多列的数据表中某个值的频率?
假设我有这样一个数据表:计算R中有多列的数据表中某个值的频率?,r,R,假设我有这样一个数据表: id days age "jdkl" 8 23 "aowl" 1 09 "mnoap" 4 82 "jdkl" 3 14 "jdkl" 2 34 "mnoap" 27 56 id count "jdkl" 3 "aowl" 2 "mnoap" 1 我想创建一个新的数据表,其
id days age
"jdkl" 8 23
"aowl" 1 09
"mnoap" 4 82
"jdkl" 3 14
"jdkl" 2 34
"mnoap" 27 56
id count
"jdkl" 3
"aowl" 2
"mnoap" 1
我想创建一个新的数据表,其中一列带有ID,另一列带有它们出现的次数。我知道数据表中有=.N的内容,但我不确定如何只对一列使用它
最终的数据表如下所示:
id days age
"jdkl" 8 23
"aowl" 1 09
"mnoap" 4 82
"jdkl" 3 14
"jdkl" 2 34
"mnoap" 27 56
id count
"jdkl" 3
"aowl" 2
"mnoap" 1
您只需从基本
R
使用表格
:
as.data.frame(sort(table(df$id), decreasing = T))
但是,如果要使用data.table执行此操作,请执行以下操作:
library(data.table)
setDT(df)[, .(Count = .N), by = id][order(-Count)]
或者有dplyr
解决方案
library(dplyr)
df %>% count(id) %>% arrange(desc(n))
您只需从基本R
使用表格
:
as.data.frame(sort(table(df$id), decreasing = T))
但是,如果要使用data.table执行此操作,请执行以下操作:
library(data.table)
setDT(df)[, .(Count = .N), by = id][order(-Count)]
或者有dplyr
解决方案
library(dplyr)
df %>% count(id) %>% arrange(desc(n))
我们可以使用
library(dplyr)
df %>%
group_by(id) %>%
summarise(Count = n()) %>%
arrange(desc(Count))
或者使用base R中的aggregate
r1 <- aggregate(cbind(Count=days)~id, df1, length)
r1[order(-r1$Count),]
# id Count
#2 jdkl 3
#3 mnoap 2
#1 aowl 1
r1我们可以使用
library(dplyr)
df %>%
group_by(id) %>%
summarise(Count = n()) %>%
arrange(desc(Count))
或者使用base R中的aggregate
r1 <- aggregate(cbind(Count=days)~id, df1, length)
r1[order(-r1$Count),]
# id Count
#2 jdkl 3
#3 mnoap 2
#1 aowl 1
r1@shayaa:我安排它与OP发布的输出相匹配。太懒了,无法安排baseR
的输出:D@shayaa:我将其安排为与OP发布的输出相匹配。太懒了,无法安排baseR
:D的输出