首页 > 解决方案 > 在 data.frame 中带有符号的 OHCL 数据,需要通过符号 (R) 提取唯一关闭数

问题描述

样本数据

        date symbol    open    high     low   close  volume
1 2015-08-24   ACAD 33.7600 35.8300 32.2300 33.6000 1474700
2 2015-08-25   ACFN  0.1700  0.2000  0.1700  0.1800  125600
3 2015-08-24   ACFN  0.1700  0.2000  0.1700  0.1700  125600
4 2015-08-24   ACGL 22.6667 22.7233 21.4267 22.3933 2314200
5 2015-08-24    ACH  7.5600  7.9200  7.5400  7.7200  260300
6 2015-08-24   ACHC 69.0900 70.8800 58.7000 69.7100 1823400
7 2015-08-24   ACHN  6.9800  7.2500  6.7100  7.2500 4556400
8 2015-08-25   ACHN  6.9800  7.2500  6.7100  7.2500 4556400

我想做的是

导出唯一关闭值的#

按符号

前任。

按交易品种的唯一收盘价

ACAD - 1
ACFN - 2
ACGL - 1
ACH  - 1
ACHC - 1
ACHN - 1

标签: r

解决方案


我们可以n_distinct用来计算按“符号”分组的“关闭”的唯一元素的数量

library(dplyr)
df1 %>% 
    group_by(symbol) %>% 
    summarise(n = n_distinct(close))
# A tibble: 6 x 2
#  symbol     n
#  <chr>  <int>
#1 ACAD       1
#2 ACFN       2
#3 ACGL       1
#4 ACH        1
#5 ACHC       1
#6 ACHN       1

数据

df1 <- structure(list(date = c("2015-08-24", "2015-08-25", "2015-08-24", 
"2015-08-24", "2015-08-24", "2015-08-24", "2015-08-24", "2015-08-25"
), symbol = c("ACAD", "ACFN", "ACFN", "ACGL", "ACH", "ACHC", 
"ACHN", "ACHN"), open = c(33.76, 0.17, 0.17, 22.6667, 7.56, 69.09, 
6.98, 6.98), high = c(35.83, 0.2, 0.2, 22.7233, 7.92, 70.88, 
7.25, 7.25), low = c(32.23, 0.17, 0.17, 21.4267, 7.54, 58.7, 
6.71, 6.71), close = c(33.6, 0.18, 0.17, 22.3933, 7.72, 69.71, 
7.25, 7.25), volume = c(1474700L, 125600L, 125600L, 2314200L, 
260300L, 1823400L, 4556400L, 4556400L)),
class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8"))

推荐阅读