-5

可能重复:
用于按索引对向量进行分区并对该分区执行操作的惯用 R 代码
如何计算特定国家/地区的利润中位数

我试图通过使用 R 中的另一列来找到一列的平均值。在 SQL 中很容易做到这一点,但无法找到合适的函数并实现它们。下面是一些示例数据。

data("Forbes2000", package = "HSAUR")
head(Forbes2000)

##    rank                name        country             category  sales profits  assets marketvalue
## 1    1           Citigroup  United States              Banking  94.71   17.85 1264.03      255.30
## 2    2    General Electric  United States        Conglomerates 134.19   15.59  626.93      328.54
## 3    3 American Intl Group  United States            Insurance  76.66    6.46  647.66      194.87
## 4    4          ExxonMobil  United States Oil & gas operations 222.88   20.96  166.99      277.02
## 5    5                  BP United Kingdom Oil & gas operations 232.57   10.27  177.57      173.54
## 6    6     Bank of America  United States              Banking  49.01   10.81  736.45      117.55
4

1 回答 1

2

使用一个名为 data.frame 的文件dat,如下所示:

     rank              name  country       category  sales profits assets marketvalue
21     21   DaimlerChrysler Germany    Consumer_dur 157.13    5.12 195.58       47.43

尝试(未经测试 d/t 文本中的大量空格阻止 read.table 理解它):

aggregate(dat[ , c("sales", "profits", "assets", "marketvalue")],   # cols to aggregate
          dat["country"],                                           # group column
          FUN=mean)                          # aggregation function
于 2012-08-30T01:23:28.550 回答