【问题标题】:R dplyr how to extract a window based featureR dplyr如何提取基于窗口的特征
【发布时间】:2017-09-27 20:31:52
【问题描述】:

我想知道我该如何做这件事:

features_windows <- function(data, window_size) {
  data_with_feature <- data %>%
    mutate(window_one = nrow(data[data$ID<ID & data$key==key & data$ID > ID - window_size,]))
   data_with_feature
}

基本上新特性应该是时间窗口ID-window_size : ID 有多少点有key。目前我到处都是 0,for 循环在 R 中是一个糟糕的想法。有什么想法吗?

问候, T

【问题讨论】:

  • 在你的函数中添加IDkey怎么样?即features_windows &lt;- function(data, ID, key, window_size) { ...
  • 我正在使用 dplyr 的 mutate 函数,它获取计算新值的行的 ID 和键。
  • 你得到了零,因为nrow( some-number ) 永远是零。 nrow 用于数据帧;你那里没有数据框。
  • 您还应该检查window_one 的逻辑。 data$ID 不能同时小于 ID 和大于 ID。所以这也将始终返回零。如果您打算评估data$ID &gt; ID - window_size,请添加一些分隔符。 data$ID &lt; ID &amp; data$ID &gt; (ID - window_size) &amp; ...
  • 刚刚检查了 nrow(data[data$lineID

标签: r dplyr time-series feature-engineering


【解决方案1】:

找到解决方案:

在开头使用 group_by 运算符:

features_windows <- function(data) {
  data_with_feature <- data %>%
    group_by(1:n()) %>%
    mutate(window_1 = nrow(data[data$ID < ID & data$ID > (ID - 10) & data$key == key, ]) ) %>%
  data_with_feature

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2019-04-28
    • 2014-04-03
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多