按行业分组数据

时间:2014-02-26 21:07:34

标签: r

我对R比较陌生。我刚刚开始学习它并且给我留下了深刻的印象。我想问几个问题。假设我有一个数据框:

ISIN     sector
12345    Technology
34567    Utilities
45256    Financials
52000    Technology
33662    Financials

我想将我的数据分解成各个部分。比如有多少证券有div收益等等。我如何按行业分组?有没有办法在R中做到这一点。

2 个答案:

答案 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 = ",") 
)
相关问题