【问题标题】:subset on id's and dateid 和日期的子集
【发布时间】:2014-10-15 22:57:45
【问题描述】:

我有一个数据集,其中包含不同个人 (id) 的多年数据

我想查看每一年并找到该年个人的平均得分条目数。

id year score
2  2011  1
2  2011  3
2  2012  4
3  2008  4
54 2011  3
45 2011  3
45 2011  3

如果我想为 2011 年设置子集,那么将返回以下内容

    id year score
    2  2011  1
    2  2011  3
    54 2011  3
    45 2011  3
    45 2011  3

平均值就是 2011 年得分的频率 (5) / 不同 id 的数量 (3) = 5/3=1.666

如何在代码中为 1000 行长的数据集执行此操作?

【问题讨论】:

  • 所以您只想在 year==2011 的地方对数据进行子集化?你试过什么代码?你到底有什么问题?子集 data.frames 是一个非常基本的 R 操作。你读过introduction to R吗?
  • 问题在哪里?
  • 在您选择的 plyr、dplyr、data.table 中使用 length(score) / length(unique(id))。如果你环顾四周,就会有数百万个这样的问题。
  • 谢谢!我已经覆盖了子集部分,它只是我需要的长度(唯一(id))!

标签: r date subset mean


【解决方案1】:

您也可以使用基本 R 函数来执行此操作:

within(dat[idx <- dat$year == 2011, ], average <- length(unique(id)) / sum(idx))
#   id year score average
# 1  2 2011     1     0.6
# 2  2 2011     3     0.6
# 5 54 2011     3     0.6
# 6 45 2011     3     0.6
# 7 45 2011     3     0.6

【讨论】:

    猜你喜欢
    • 2020-02-06
    • 1970-01-01
    • 2013-07-05
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多