【发布时间】:2020-12-07 15:26:13
【问题描述】:
我正在处理包含日期字段作为字符的 covid 数据。
我试图找到 最大日期,我尝试使用 dplyr 的命令给我错误:
df %>% select(date) %>% max()
Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric variables
max(df$date) 运行完美并给了我结果:[1] "2020-08-17"。
我无法理解为什么会这样。这是数据等的代码:
library(flexdashboard)
library(tidyverse)
library(lubridate)
数据
df <- read.csv("https://raw.githubusercontent.com/RamiKrispin/coronavirus/master/csv/coronavirus.csv", stringsAsFactors = F)
head(df)
dim(df)
df %>% distinct(country)
typeof(df$date)
df %>% select(date) %>% max()
df %>% max(date)
max(df$date)
【问题讨论】:
-
试试:
select(date) %>% mutate(max(date)) -
试试:
pull(date) %>% max(),pull返回一个向量而不是像select这样的小标题 -
@Duck 但这给了我一列重复的最大日期值。我只需要从所有值中找到 1 个最大值,并且它应该可以在没有变异的情况下工作
-
当你尝试这样做时,你会得到错误:
Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric variables。如果所有变量都是数字,那么您将在所有 data.frame 中获得最大值,而不是每一列。 -
感谢@starja
pull(date) %>% max()工作。但是,如果我正在处理数据框并选择一列,为什么它会变成一个小标题。使用 Python 中的 Pandas 后,我在这里发现了一些非常不同的风格,我想我需要一些时间来习惯这里的 pull() 命令
标签: r dataframe date tidyverse