假设我有一个数据帧“ df”,如下所示:
Item | Tech
1 F23
1 F32
2 F23
2 C27
2 C76
3 A21
,我有一个带有所有技术代码的向量“ c”:
Number | Tech
1 A01
2 F23
3 C27
4 C76
5 A21
6 E17
对于下面矢量的每个技术,我如何计算共享相同技术的项目数? (还会在需要时报告零)。
Number | Tech | Count in Item
1 A01 0
2 F23 2
3 C27 1
4 C76 1
5 A21 0
6 E17 0
数据帧“ df”和向量“ c”确实很长,所以我想有一种快速的方法来获取最后一张表。
答案 0 :(得分:0)
您可以使用dplyr
将该计数计为:
library(dplyr)
df %>%
group_by(Tech) %>%
summarise(Count = n()) %>%
right_join(c, by = "Tech") %>%
mutate(Count = ifelse(is.na(Count), 0, Count))
答案 1 :(得分:0)
一种选择是将df$Tech
转换为factor
与level
相同的c$Tech
,然后使用table
来计数频率。
df$Tech <- factor(df$Tech, levels = c$Tech)
c$count <- table(df$Tech[df$Tech %in% c$Tech])
c
# Number Tech count
#1 1 A01 0
#2 2 F23 2
#3 3 C27 1
#4 4 C76 1
#5 5 A21 1
#6 6 E17 0