计算值[R]的出现次数
我有一个名为test的数据帧,如下所示:计算值[R]的出现次数,r,dataframe,R,Dataframe,我有一个名为test的数据帧,如下所示: group v x 1 a 110 114 2 a 90 150 3 c 57 100 4 d 53 98 5 e 114 67 6 f 143 126 7 g 110 95 8 g 106 101 9 i 103 70 10 j 149 73 我还有一个名为hold_df的唯一
group v x
1 a 110 114
2 a 90 150
3 c 57 100
4 d 53 98
5 e 114 67
6 f 143 126
7 g 110 95
8 g 106 101
9 i 103 70
10 j 149 73
我还有一个名为hold_df的唯一组值的数据帧
groups
1 a
2 c
3 d
4 e
5 f
6 g
7 i
8 j
我想添加列来保存_df,其中包括测试数据帧中唯一发生的计数,以及当列v超过某个阈值(例如100)时唯一发生的数量
groups unique uniqueConditional
1 a 2 1
2 c 1 0
3 d 1 0
4 e 1 1
5 f 1 1
6 g 2 2
7 i 1 1
8 j 1 1
具有基本功能:
hold_df <- cbind(
setNames(data.frame(table(test$group)),c("groups","unique")),
unique_conditional = data.frame(table(subset(test,v>100)$group))[,2])
# groups unique unique_conditional
# 1 a 2 1
# 2 c 1 0
# 3 d 1 0
# 4 e 1 1
# 5 f 1 1
# 6 g 2 2
# 7 i 1 1
# 8 j 1 1
来自dplyr的解决方案。我们可以使用group_by和Summary来总结测试数据框架。test2是最终输出
library(dplyr)
test2 <- test %>%
group_by(group) %>%
summarise(unique = n(), uniqueConditional = sum(v > 100))
test2
# A tibble: 8 x 3
group unique uniqueConditional
<chr> <int> <int>
1 a 2 1
2 c 1 0
3 d 1 0
4 e 1 1
5 f 1 1
6 g 2 2
7 i 1 1
8 j 1 1
数据准备
相关的帖子,可能还有更多。谢谢!test3代码行给了我一个错误。你确定吗?你从示例数据集或实际数据集中得到了一个错误?没有更多的信息,我不知道发生了什么。
test3 <- test2 %>% semi_join(hold_df, by = c("group" = "groups"))
test <- read.table(text = " group v x
1 a 110 114
2 a 90 150
3 c 57 100
4 d 53 98
5 e 114 67
6 f 143 126
7 g 110 95
8 g 106 101
9 i 103 70
10 j 149 73",
header = TRUE, stringsAsFactors = FALSE)
hold_df <- read.table(text = " groups
1 a
2 c
3 d
4 e
5 f
6 g
7 i
8 j ",
header = TRUE, stringsAsFactors = FALSE)