传统上和内部循环可以使用dplyr和data.table从数据框中提取结果吗?

时间:2017-05-16 11:14:40

标签: r loops dplyr

假设我有一个超过700,000个观测值和四个变量的数据框,并希望通过首先索引其中一个区变量(此处显示为Dist)来提取一些值:

Date         X      Y    Dist
2003/01    2.4    5.5       1
2003/02    2.3    4.0       1
2003/03    1.9    4.4       1
      .
      .
      .
2004/11    3.7    2.9     700
2004/12    2.6    5.9     700

即700个区的Xs和Ys数据集,每个区都有Xs和Ys的年度记录。对于每个区域,需要提取一些值,所以我认为我可以在这里使用dplyr而不是传统的循环和条件;但是,我是新手,并不习惯它的语法,尽管传递了一些有效的命令,但我没有得到正确的结果。结果数据框应如下所示:

X           Dist
Some avg.      5

甚至是多个区域的值,按升序排列:

X           Dist
Some avg.      4
       "       5
       "       6

首先,我'切掉'区域的数据并将其保存为test以提取非NA观测值的平均值和数量,但结果数据集包含警告,我不明白为什么。例如,对于1到10区:

test <- slice(df, Dist == c(1:10))

发出警告,指出较长的物体长度不是较短物体的倍数。我可以为每个区切片,然后按顺序合并它们,但这很乏味。我实际上使用了一个for循环来提出类似的值,但是当涉及到dplyr的效率和速度来提取有价值的见解只通过单行而不是代码和条件行时,这些就是无法比拟的。除了使降价文件更清晰,更易读之外,它只是加快了一切。如何使用链式操作%>%来得出类似的结果?它们可以用于传统的循环和条件吗?

0 个答案:

没有答案