【发布时间】:2021-07-26 14:01:31
【问题描述】:
我正在尝试通过跟踪几个变量来创建散点图。我想知道如何通过跟踪状态来显示当天的趋势。请让我知道任何需要提供的东西。非常感谢你! 数据如下所示。
State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
【问题讨论】:
我正在尝试通过跟踪几个变量来创建散点图。我想知道如何通过跟踪状态来显示当天的趋势。请让我知道任何需要提供的东西。非常感谢你! 数据如下所示。
State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
【问题讨论】:
使用matplot 一次获取所有行。但是数据必须转置,R使用列一阶。
matplot(t(df1[-1]), type = "l", lty = 1)
legend("topleft", legend = df1$State, col = 1:3, lty = 1)
ggplot2
使用包ggplot2,这类问题通常与重塑数据有关。格式应为长格式,数据为宽格式。请参阅this post,了解如何将数据从宽格式重塑为长格式。
library(ggplot2)
df1 |>
tidyr::pivot_longer(-State, names_to = "Day") |>
dplyr::mutate(Day = as.integer(sub("[^[:digit:]]+", "", Day))) |>
ggplot(aes(Day, value, color = State)) +
geom_line()
df1 <- read.table(text = "
State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
", header = TRUE)
【讨论】:
在 Stata 中,您需要一个 long 布局才能正常工作 - 就像在 R 中的 ggplot2 一样。在类似之后
clear
input str2 State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
end
reshape long Day, i(State) j(Time)
rename Day Whatever
encode State, gen(Where)
xtset Where Time
您可以查看tsline 和xtline。但是:如果您的真实数据是美国的 50 个州(加上 DC?波多黎各?关岛???),那么您的数据定义了 50?+ 行,可能需要一些策略。
【讨论】: