PriceData
Date AAPL BAC CAT JNJ PG UNH VZ
2004-04-26
2004-04-27 Daily Prices
2004-04-28
2004-04-29
Companies
Date X1 X2 X3 X4
2004-04-26 AAPL CAT PG VZ
2004-04-27 AAPL CAT UNH VZ
2004-04-28 AAPL JNJ UNH VZ
2004-04-29 AAPL JNJ UNH VZ
我已经设法按日期对Companies
数据框进行了子集设置,所以我有一个数据框,其中一行包含特定日期的行情自动收录器。例如:
Tickers
Date X1 X2 X3 X4
2004-04-28 AAPL JNJ UNH VZ
我现在想做的是对PriceData
数据帧进行子集处理,以便仅保留Tickers
中四个股票的价格数据:
newPriceData
Date AAPL JNJ UNH VZ
2004-04-26
2004-04-27 Daily Prices
2004-04-28
2004-04-29
有人知道我可以使用什么软件包/功能来实现这一目标吗?
答案 0 :(得分:1)
Base R,data.table和dplyr解决方案。 data.table和dplyr是为数据操纵提供替代功能的软件包。我鼓励您同时研究这两种方法-每种方法都比基本R子集更加灵活和方便。您可以找到CRAN页面here和here。他们每个人都有一个小插图(教程),列为“简介”。
下面,我为每个列出了相应的命令。对于dplyr和data.table,列出的内容略有变化,对于dplyr或data.table来说可能会更自然,但它们包含从相似性到基本语法的最小转移。
columns_to_retain <- unlist(Tickers[1,-1]) # Take the first row, drop the first column, convert to plain vector.
NewPriceData <- PriceData[,columns_to_retain]
# dplyr
library(dplyr)
NewPriceData <- select(PriceData, columns_to_retain) # or names(Tickers) instead of columns_to_retain
# data.table
NewPriceData <- PriceData[,columns_to_retain, with = FALSE]