Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dplyr和data.table是否可以在循环中传统地用于从数据帧中提取结果?_R_Loops_Dplyr - Fatal编程技术网

dplyr和data.table是否可以在循环中传统地用于从数据帧中提取结果?

dplyr和data.table是否可以在循环中传统地用于从数据帧中提取结果?,r,loops,dplyr,R,Loops,Dplyr,假设我有一个超过700000个观测值和四个变量的数据框架,并希望通过首先索引一个地区变量(此处显示为Dist)来提取一些值: 也就是说,700个地区的Xs和Ys数据集,每个地区每年都有Xs和Ys的记录。对于每个区域,需要提取一些值,因此我认为可以在这里使用dplyr,而不是传统的循环和条件;然而,我对它还不熟悉,不太习惯它的语法,尽管传递了一些有效的命令,但我没有得到正确的结果。生成的数据帧应类似于: X Dist Some avg. 5 或多个区域的偶数值,按升

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

也就是说,700个地区的Xs和Ys数据集,每个地区每年都有Xs和Ys的记录。对于每个区域,需要提取一些值,因此我认为可以在这里使用dplyr,而不是传统的循环和条件;然而,我对它还不熟悉,不太习惯它的语法,尽管传递了一些有效的命令,但我没有得到正确的结果。生成的数据帧应类似于:

X           Dist
Some avg.      5
或多个区域的偶数值,按升序排列:

X           Dist
Some avg.      4
       "       5
       "       6
首先,我将地区数据“切片”,并将其保存为
test
,以提取非NA观测值的平均值和数量,但结果数据集包含警告,我不清楚原因。例如,对于1至10区:


test只需在
dplyr
库(data.table)中进行
df%>%groupby(Dist)%>%总结(X=mean(X))
;setDT(df)[,(X=mean(X)),by=Dist]
切片(df,Dist==c(1:10))
错误。您可以使用
slice(df,1:10)
获取数据的前10行,也可以使用
filter(df,Dist%在%1:10中)
获取Dist介于1和10(整数)之间的所有行,谢谢!
df%>%groupby(Dist==c(1:10))
可以用于特定地区吗?@docendodiscimus感谢您的提醒!我看看这是否有效。首先使用
filter
df%>%filter(Dist%在%1:10中)%%>%groupby(Dist)%%>%summary(X=mean(X))
X           Dist
Some avg.      4
       "       5
       "       6