小编dem*_*ain的帖子

R - 按 dplyr 中的代码行运行时间

当我想估计 R 代码的运行时间时,我使用函数system.time().

library(dplyr)

system.time({
    Titanic %>%
        as.data.frame() %>%
        mutate(Dataset = 1) %>%
        bind_rows(as.data.frame(Titanic)) %>%
        mutate_all(funs(replace_na(., NA))) %>% 
        filter(Dataset != 1)
})

# utilisateur     système      écoulé 
#        0.02        0.00        0.02
Run Code Online (Sandbox Code Playgroud)

问题: 有没有办法知道每个操作的运行时间,每个管道之间的操作(the mutate, then the bind_rows, then thefilter等),而不用一个一个地运行一个或者不写几个system.time()

在这个例子中它没有用,但有时我收到一个很长的脚本,运行时间很长,我想确定哪些操作是最低的。

我做了一些研究,但没有找到有用的东西。

performance time r dplyr

5
推荐指数
1
解决办法
839
查看次数

当 left_join 和 merge 都收到错误时,如何将数据帧与空间数据帧组合?

我正在尝试将包含医院就诊数据的数据框(“Hospital_Visits_df”)与包含 ZIP/ZCTA 多边形和坐标的 shapefile/spatial*dataframe(“shp”,从人口普查局下载合并。

两个数据框分别包含匹配的列ZCTAGEOID10,但shp包含整个美国的多边形,稍后我将缩减到相关州。

我尝试同时使用merge()left_join(),但两者都会导致自己的错误。

shp_hospital_zip1 <- merge(shp, Hospital_Visits_df, by.x = "GEOID10", by.y = "ZCTA")

.local(x, y, ...) 中的错误:检测到非唯一匹配项

但两列中都没有重复项。

shp_hospital_zip2 <- shp@data %>% 
   left_join(Hospital_Visits_df, by = c("GEOID10" = "ZCTA"))
Run Code Online (Sandbox Code Playgroud)

这似乎有效,除了当我去summary(shp_hospital_zip2)它时不再将其指定为空间数据框。

我希望将我的医院就诊数据与空间数据合并,以便我可以用传单绘制它,但我在第一步就被绊倒了。

我很感激你能给我的任何帮助。非常感谢 !!

merge r left-join r-sp

4
推荐指数
1
解决办法
4958
查看次数

标签 统计

r ×2

dplyr ×1

left-join ×1

merge ×1

performance ×1

r-sp ×1

time ×1