我已将多个 Excel 表合并到一个数据框中,但 stock_code 列中的某些值重复,例如:X 公司的值从 01-01-2009 到 31-12-2020,但此范围内的值重复:(因为同一家公司至少有两个excel文件具有相同的值)
> head(data,3)
# A tibble: 3 x 4
tarih stock_code adj_close_price
<dttm> <chr> <dbl>
1 2020-03-31 00:00:00 X 2.87
2 2020-03-30 00:00:00 X 2.69
3 2020-03-27 00:00:00 X 2.69
> tail(data,3)
# A tibble: 3 x 4
tarih stock_code adj_close_price
<dttm> <chr> <dbl>
1 2009-01-06 00:00:00 X 0.136
2 2009-01-05 00:00:00 X 0.129
3 2009-01-02 00:00:00 X 0.124
看起来不错,它从 2009 年到 2020 年,然后又显示了 2009 年到 2020 年的相同值(如顶部所示)。
我无法过滤它,因为我不想删除整个公司,但我只想删除公司的重复范围。
这是我合并文件的方式,也许我应该添加一个条件来避免某种重复值?
xlsx_files <- c("düzelt1.xlsx",
"düzelt2.xlsx",
"düzelt3.xlsx",
"düzelt4.xlsx",
"düzelt5.xlsx",
"düzelt6.xlsx",
"düzelt7.xlsx",
"düzelt8.xlsx")
dataframes <- lapply(xlsx_files, function(x)
read_excel(path = paste0("~/weekly_stock/", x)))
df <- do.call("rbind", dataframes)
tail(df)
files <- list.files(path = "~/weekly_stock", pattern = "*.xlsx", full.names = T)
weekly_stock <- sapply(files, read_excel, simplify=FALSE) %>%
bind_rows(.id = "id")
感谢并感谢您的回复。
答案 0 :(得分:1)
您可以使用 distinct
仅保留每个 tarih
的唯一值 stock_code
。
library(dplyr)
weekly_stock <- sapply(files, read_excel, simplify=FALSE) %>%
bind_rows(.id = "id") %>%
distinct(stock_code, tarih, .keep_all = TRUE)
答案 1 :(得分:0)
请试试 dplyr::distinct() 下面的通用示例:
stock.data<- data.frame(stock =c("A","B","C","A","A"), date=c("2009","2009","2009","2010","2009"),price=c(20,30,40,50,20))
stock.data %>% distinct()