不知道这是否是其中的一部分,但我很难将 csv 日期转换为 R 日期。正如您从下面的数据中看到的(请参阅链接 - 由于注释而删除,添加了 dput 数据),我的 .csv 文件中有 m/d/y,我必须告诉 R 它只是 %m/%d 按顺序为了将所有日期数据正确读取到 R 中。如果我执行了 %m/%d/%Y,我会得到一些日期,但它们的格式就像 0023/11/10 很奇怪,其余的都是 NA (大约 75%)。
这是我的代码:
library(tidyverse)
library(lubridate)
particle_data <- read.csv("C:/Users/.csv")
view(particle_data)
Dv50Data <- particle_data %>%
filter(Metric == "mean")
Dv50Data$Dv50 <- as.numeric(as.character(Dv50Data$Dv50))
Dv50Data$Date <- as.Date(Dv50Data$Date, format = "%m/%d")
view(Dv50Data)
glimpse(Dv50Data)
ggplot(Dv50Data, aes(x = Date,
y = Dv50,
group = Treatment,
color = Treatment)) +
geom_line()+
geom_point() +
ylim (0,50) +
labs(title = "Dose Response: Dv50 Particle Size Over Time",
y = "Particle Size (microns)") +
scale_color_brewer(palette = "Dark2") +
theme_minimal()
这是我的df
structure(list(Species = c("OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV",
"OFAV", "OFAV"), Treatment = c("10 NTU", "10 NTU", "10 NTU",
"10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU",
"10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU",
"10 NTU", "10 NTU", "10 NTU", "10 NTU", "20 NTU", "20 NTU", "20 NTU",
"20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU",
"20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU", "20 NTU",
"20 NTU", "20 NTU", "20 NTU", "20 NTU", "29 NTU", "29 NTU", "29 NTU",
"29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU",
"29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU", "29 NTU",
"29 NTU", "29 NTU", "29 NTU", "29 NTU", "Stock", "Stock", "Stock",
"Stock", "Stock", "Stock", "Stock", "Stock", "Stock", "Stock",
"Stock", "Stock", "Stock", "Stock", "Stock", "Stock", "Stock",
"Stock", "Stock", "Stock", "Stock", "Stock", "Stock", "Stock"
), Date = c("09/26/23", "09/26/23", "09/26/23", "10/13/23", "10/13/23",
"10/13/23", "10/24/23", "10/24/23", "10/24/23", "11/10/23", "11/10/23",
"11/10/23", "11/21/23", "11/21/23", "11/21/23", "12/08/23", "12/08/23",
"12/08/23", "12/12/23", "12/12/23", "12/12/23", "09/26/23", "09/26/23",
"09/26/23", "10/13/23", "10/13/23", "10/13/23", "10/24/23", "10/24/23",
"10/24/23", "11/10/23", "11/10/23", "11/10/23", "11/21/23", "11/21/23",
"11/21/23", "12/08/23", "12/08/23", "12/08/23", "12/12/23", "12/12/23",
"12/12/23", "09/26/23", "09/26/23", "09/26/23", "10/13/23", "10/13/23",
"10/13/23", "10/24/23", "10/24/23", "10/24/23", "11/10/23", "11/10/23",
"11/10/23", "11/21/23", "11/21/23", "11/21/23", "12/08/23", "12/08/23",
"12/08/23", "12/12/23", "12/12/23", "12/12/23", "09/26/23", "09/26/23",
"09/26/23", "10/13/23", "10/13/23", "10/13/23", "10/24/23", "10/24/23",
"10/24/23", "11/07/23", "11/07/23", "11/07/23", "11/10/23", "11/10/23",
"11/10/23", "11/21/23", "11/21/23", "11/21/23", "12/08/23", "12/08/23",
"12/08/23", "12/12/23", "12/12/23", "12/12/23"), Metric = c("mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean",
"SD", "%RSD", "mean", "SD", "%RSD"), Dv50 = c("37.5", "0.354",
"0.946", "28.6", "0.53", "1.85", "32.2", "0.07", "0.22", "27.5",
"0.234", "0.853", "31.1", "0.138", "0.444", "28.2", "0.567",
"2.01", "29", "0.214", "0.737", "20.2", "0.0589", "0.292", "21.9",
"0.099", "0.453", "21.7", "0.107", "0.494", "22.1", "0.167",
"0.758", "22.6", "0.0816", "0.361", "21.6", "0.312", "1.44",
"19.4", "0.056", "0.289", "30.4", "0.6.6", "1.99", "15.4", "0.044",
"0.29", "20.2", "0.107", "0.531", "18.5", "0.116", "0.626", "20.1",
"0.07", "0.349", "18.1", "0.091", "0.507", "19.9", "0.077", "0.387",
"26.8", "0.16", "0.596", "14.3", "0.047", "0.332", "19.2", "0.07",
"0.365", "20.5", "0.131", "0.638", "21.4", "0.177", "0.825",
"18", "0.016", "0.09", "20.4", "0.062", "0.306", "19.3", "0.137",
"0.707"), Quality.Check = c("Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass",
"Pass", "Pass")), class = "data.frame", row.names = c(NA, -87L
))
lubridate::mdy()
可以帮助解析 Date
变量。我在数据集中创建了一个日期列表,用于在 x 轴刻度上指定 breaks
。
library(tidyverse)
particle_data |> glimpse()
#> Rows: 87
#> Columns: 6
#> $ Species <chr> "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", "OFAV", …
#> $ Treatment <chr> "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NTU", "10 NT…
#> $ Date <chr> "09/26/23", "09/26/23", "09/26/23", "10/13/23", "10/13/2…
#> $ Metric <chr> "mean", "SD", "%RSD", "mean", "SD", "%RSD", "mean", "SD"…
#> $ Dv50 <chr> "37.5", "0.354", "0.946", "28.6", "0.53", "1.85", "32.2"…
#> $ Quality.Check <chr> "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", "Pass", …
Dv50Data <- particle_data |>
filter(Metric == "mean") |>
mutate(Date = mdy(Date),
Dv50 = as.numeric(Dv50))
date_breaks <- Dv50Data |>
distinct(Date) |>
pull(Date)
Dv50Data |>
ggplot(aes(x = Date, y = Dv50, color = Treatment)) +
geom_line() +
geom_point() +
ylim(0,50) +
labs(title = "Dose Response: Dv50 Particle Size Over Time",
y = "Particle Size (microns)") +
scale_color_brewer(palette = "Dark2") +
scale_x_date(breaks = date_breaks, date_labels = '%m/%d/%y') +
theme_minimal() +
theme(axis.text.x = element_text(angle = 30, hjust = 1),
panel.grid.minor.x = element_blank())
创建于 2024-05-24,使用 reprex v2.1.0