gpt4 book ai didi

r - 创建表示计数的新向量

转载 作者:行者123 更新时间:2023-12-04 13:36:09 25 4
gpt4 key购买 nike

我想通过以下方式创建计数向量:

说我的向量是

x <- c(1,1,1,1,2)

它代表一个分类变量。
我想要表单的第二个向量
x1 <- c(4,4,4,4,1)

它代表每个级别的计数。例如1 级出现 4 次,2 级出现 1 次。

我试过了
r <- range(x) ; table(factor(x, levels = r[1]:r[2])) 
tabulate(factor(x, levels = min(x):max(x)))
table(x)

最佳答案

这使用 ave按每个值分组。如果您的向量绝对是 integer,这可能会更好。类型。

x <- c(1,1,1,1,2)

ave(x, x, FUN = length)
[1] 4 4 4 4 1

等效于 data.tabledplyr :
library(data.table)
data.table(x)[, n:= .N, by = 'x'][]

x n
1: 1 4
2: 1 4
3: 1 4
4: 1 4
5: 2 1

library(dplyr)
library(tibble)
tibble::enframe(x, name = NULL)%>%
add_count(value)

##or

x%>%
tibble::enframe(name = NULL)%>%
group_by(value)%>%
mutate(n = n())%>%
ungroup()

# A tibble: 5 x 2
value n
<dbl> <int>
1 1 4
2 1 4
3 1 4
4 1 4
5 2 1

关于r - 创建表示计数的新向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57230520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com