有些tidyverse
函数返回数据帧,但有些函数返回小标题。我找不到关于哪些函数返回哪种数据类型的任何资源,也看不到任何真正可预测的模式。以下是一些示例以供说明:
library(tidyverse)
# Returns dataframe
df1 <- iris %>% mutate(newcol = mean(Sepal.Length))
df2 <- iris %>% filter(Sepal.Length > 5)
df3 <- iris %>% select(Sepal.Length, Species)
class(df1); class(df2); class(df3)
[1] "data.frame"
[1] "data.frame"
[1] "data.frame"
# Returns tibble
df4 <- iris %>% add_count(Species)
df5 <- iris %>% pivot_longer(cols = -Species)
df6 <- iris %>% group_by(Species) %>% mutate(newcol = mean(Sepal.Length))
class(df4); class(df5); class(df6)
[1] "tbl_df" "tbl" "data.frame"
[1] "tbl_df" "tbl" "data.frame"
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉函数的返回值类型是什么?或者,在 tidyverse 中有哪些函数返回哪种数据类型的资源?许多 R …
使用sf
R 中的包,我正在读取存储在地理包中的一系列图层,过滤它们,然后将它们重新保存为新的地理包。
当我设置我的脚本时,我测试了其中一个层并且它工作正常,但是当在层列表上运行相同的代码时,它失败了,因为测试层已经存在。的文档st_write
有 append 和 overwrite 参数,但设置为 replace 而不是 append ( append = FALSE
or overwrite = TRUE
) 会导致它失败并出现错误
st_write.sf(., dsn = gpkg_out, layer = layername, overwrite = TRUE) 中的错误:无法识别的参数覆盖
st_write.sf(., dsn = gpkg_out, layer = layername, append = FALSE) 中的错误:无法识别的参数追加
我更新了 sf 包的副本,但它仍然失败并出现相同的错误。我通过删除文件系统中的文件找到了解决方法,但是如果我只是尝试替换一层,这将是有问题的。
有谁知道这是一个已知问题还是一种使其替换而不是附加图层的方法?
我的代码:
library(sf)
library(tidyverse)
gpkg <- "D:/GIS/Sugar/SugarEC_hydropts.gpkg" # name of existing geopackage
layers = st_layers(gpkg)$name
layers
# [1] "ec1520" "ec17200" "ec224" "ec2500"
# "ec271" "ec4680" "ec488" "ec5540" "ec8140" "ec9860"
gpkg_out <- …
Run Code Online (Sandbox Code Playgroud) 我的 R 项目有一个奇怪的文件
最后一次编辑是在 1969 年 12 月 31 日。它被称为“write-test-”,然后是一堆字母数字。即使在显示隐藏文件时,该文件也不会显示在我的文件资源管理器中。
对此有任何想法,我应该担心吗?