我对R比较陌生。我刚刚开始学习它并且给我留下了深刻的印象。我想问几个问题。假设我有一个数据框:
ISIN sector
12345 Technology
34567 Utilities
45256 Financials
52000 Technology
33662 Financials
我想将我的数据分解成各个部分。比如有多少证券有div收益等等。我如何按行业分组?有没有办法在R中做到这一点。
答案 0 :(得分:0)
您可以使用R:
中的行条件对数据框进行子集化FinancialsData <- myDataFrame[myDataFrame$sector == "Utilities", ]
如果你想把它分成几个数据框,每个扇区一个,你可以使用split
函数:
splitData <- split(myDataFrame, f = myDataFrame$sector)
产生一个列表,其中每个元素都是特定的扇区。
答案 1 :(得分:0)
您还可以使用plyr
包按部门汇总数据。
newDF <- ddply(myDF, .(sector), summarise, #some code to create summary variables)
由于您没有提供reproducable example,因此我们无法看到您的数据结构,因此很难给出一个好的答案。但是,下面是代码的示例:
# creating a data.frame
myDF <- read.table(text="ISIN sector div.yield
12345 Technology 3
34567 Utilities 4
45256 Financials 1
52000 Technology 5
33662 Financials 2", header = TRUE, strip.white = TRUE)
# summarising the data.frame
newDF <- ddply(myDF, .(sector), summarise, n.yield = as.numeric(length(div.yield)),
av.yield = round(mean(div.yield),2),
ISIN.string = paste(as.character(ISIN), collapse = ",")
)