【问题标题】:How to select all columns in dplyr/sql?如何选择 dplyr/sql 中的所有列?
【发布时间】:2015-08-25 16:34:05
【问题描述】:

我正在用dplyr 连接一个MySQL 数据库,然后用dplyr%>% 操作符处理数据。

conDplyr <- src_mysql(user = db_user, password = db_pw, dbname = db_name, host = db_host, port = some_port)

只要我选择一定数量的列但全部,它就可以了!

dat <- conDplyr %>%
 tbl('table_name') %>%
 select(c1, c2, c3, c4) %>%
 filter(!is.null(c4))

现在,我遇到了一个用例,其中我需要选择所有列(整个表)。我发现的所有教程(关于 dplyr)都通过选择整个数据框(我没有)来处理这个问题

some_dataframe <- ...
select(some_dataframe)

我没有找到任何与数据库结合的建议。也许这一天太长了。有人可以帮帮我吗?

最佳强盗

conDplyr <- src_mysql(...)
dat <- conDplyr %>%
tbl('table_name') %>%
select(everything()) %>%
filter(!is.null(ean))

工作得很好。谢谢!如果我省略了选择,则查询会导致错误(选择了未定义的列)。 同样,我不只是想使用已经存在的数据框,而是使用从数据库中查询的表,这就是为什么我必须这样做,如果我错了,请纠正我,选择。

【问题讨论】:

  • 在选择中你必须传递变量名。如果您说选择(“您的数据框”),它将不起作用。您可以简单地忽略 select 命令并继续您想要在任何其他 dplyr 进程中执行的操作吗?如果您不使用 select,它将自动使用所有列。

标签: mysql r dplyr


【解决方案1】:

正如@AntoniosK 指出的那样,我不知道您为什么要这样做。不过,你试过everything吗?:

some_dataframe <- ...
select(everything())

例如:

select(iris, everything()) # or
iris %>% select(everything())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2017-07-27
    • 2022-01-14
    相关资源
    最近更新 更多