【发布时间】:2020-04-15 20:58:17
【问题描述】:
我有一个类似于df的数据框:
ID = c(letters[1:10])
num = c(1000,1200,1234,980,1300,1400,1251,1111,1354,1256)
df <- data.frame(ID = rep(ID, num), num = sequence(num))
df[paste0('Var', seq_along(ID))] <- rnorm(length(ID) * sum(num))
df$Location = rep(c("alpha", "beta"), each = 6043)
有 10 个变量对多个个体进行了测量(每个变量都由唯一的 ID 表示)。个体 (IDs) 嵌套在 Location 中,本例中有 2 个。所以IDs a:e 属于Location alpha,而IDs f:j 属于Location beta
我一直在通过创建一个新对象来制作我想要的图,该对象包含每个唯一 Location 的观察结果。对于每个变量 (Var1:Var10),我将 Location 的所有成员绘制在同一张图上,如下所示:
#example plot for alpha
alpha <- df%>%
filter(Location == "alpha")
ggplot(df, aes(x=num, y=Var1))+
labs(x= "num(distance)",y="Variable")+
geom_line(aes(color = ID))
我的真实数据集有很多变量/ID 组合,所以我正在尝试编写一个函数,我可以只提供我想用来生成相同类型的绘图的Location 和Var
我已经尝试了几种变体,但无法正常工作:
TSplot <- function(Location, Variable){
ggplot(df, aes(x = num, y = Variable))+
labs(x= "num(distance)", y=paste(Variable))+
geom_line(aes(color = ID))
}
TSplot(alpha, Var1)
【问题讨论】:
标签: r ggplot2 time-series