【问题标题】:How to replace column values for cohort analysis如何替换队列分析的列值
【发布时间】:2014-11-09 13:17:10
【问题描述】:

我对使用 R 非常陌生。我已经对此进行了搜索,但找不到任何指针。

我正在进行同期群分析,Month1 下的数据是该特定月份注册的新用户数。 Month2 是从上个月注册的用户数。

我有一组数据如下

Month_Start_Date   Month1   Month2   Month3  Month4   Month5   Month6
2010-01-01           10        12       11      9       3        15
2010-02-01           10         9       11      9       3        15
2010-03-01           10         9        7      9       3        15
2010-04-01           10         7        5      6       3        15
2010-05-01           10         8        6      3       4        15

我希望我的数据采用以下格式:

Month_Start_Date   Month1   Month2   Month3  Month4   Month5   Month6
2010-01-01           10         0       0       0       0        0
2010-02-01           10         9       0       0       0        0
2010-03-01           10         9       7       0       0        0
2010-04-01           10         7       5       6       0        0
2010-05-01           10         8       6       3       4        0

我的主要数据包含 2008 年的数据。我正在过滤以仅取 2010 年的数据。因此,对于 2010-01-01,我希望 Month2、Month3、Month4、Month5 为 0,而对于 2010-01-01,Month3、Month4、Month5 为 0 2010-02-01

【问题讨论】:

  • 可能是df[-1][upper.tri(df[-1])] <- 0; df,其中df 是您的数据
  • @RichardScriven,我只是写了完全相同的评论

标签: r analysis


【解决方案1】:

您似乎希望upper.tri 将值设置为零。以

开头
> df
#   Month_Start_Date Month1 Month2 Month3 Month4 Month5 Month6
# 1       2010-01-01     10     12     11      9      3     15
# 2       2010-02-01     10      9     11      9      3     15
# 3       2010-03-01     10      9      7      9      3     15
# 4       2010-04-01     10      7      5      6      3     15
# 5       2010-05-01     10      8      6      3      4     15

我们可以用零替换上面的三角形

> df[-1][upper.tri(df[-1])] <- 0
> df
#   Month_Start_Date Month1 Month2 Month3 Month4 Month5 Month6
# 1       2010-01-01     10      0      0      0      0      0
# 2       2010-02-01     10      9      0      0      0      0
# 3       2010-03-01     10      9      7      0      0      0
# 4       2010-04-01     10      7      5      6      0      0
# 5       2010-05-01     10      8      6      3      4      0

【讨论】:

  • 哇!!感谢您及时的回复。我对我的数据应用了同样的方法,但我的数据从 Month3 的第一行返回 0,从 Month4 的第二行返回 0。有关解决此问题的任何提示>
  • 它在一定程度上起作用。当我应用到我的完整数据时,第一行从 Month3 返回 0,第二行从 Month4 返回 0。有关解决此问题的任何提示?提前致谢!
  • 最好再显示几行数据,这样它就不是数字列上的方阵,以及由此产生的结果
  • 我能够得到我想要的格式:)。我刚刚删除了 -1 并使用了这个:df[][upper.tri(df[])]
  • 我猜这是一个动物园对象(它实际上是一个索引向量和一个附加矩阵)......而你没有告诉我们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2021-04-24
相关资源
最近更新 更多