我们说我有一个带有因子的data.frame。
d = data.frame(f = c("a","a","a","b","b","b","b","d","d"))
f
1 a
2 a
3 a
4 b
5 b
6 b
7 b
8 d
9 d
我想添加一个列,告诉我元素出现的次数。
喜欢这个
f n
1 a 3
2 a 3
3 a 3
4 b 4
5 b 4
6 b 4
7 b 4
8 d 2
9 d 2
我该怎么做?
答案 0 :(得分:2)
还可以使用一些plyr
函数 - join
& ddply
d <- data.frame(f = c("a","a","a","b","b","b","b","d","d"))
d2 <- join(d, ddply(d, .(f), 'nrow'))
d2
f nrow
1 a 3
2 a 3
3 a 3
4 b 4
5 b 4
6 b 4
7 b 4
8 d 2
9 d 2
答案 1 :(得分:1)
您可以使用ave
和length
:
> d$n <- as.numeric(ave(as.character(d$f), d$f, FUN = length))
> d
f n
1 a 3
2 a 3
3 a 3
4 b 4
5 b 4
6 b 4
7 b 4
8 d 2
9 d 2
使用“data.table”包,您可以执行以下操作:
library(data.table)
D <- data.table(d)
D[, n := as.numeric(.N), by = f]
答案 2 :(得分:1)
您可以像这样使用table
:
d$n <- table(d$f)[d$f]
# f n
#1 a 3
#2 a 3
#3 a 3
#4 b 4
#5 b 4
#6 b 4
#7 b 4
#8 d 2
#9 d 2