R 带时间点的装箱纵向数据的意大利面图

R 带时间点的装箱纵向数据的意大利面图,r,plot,ggplot2,R,Plot,Ggplot2,我有一个包含纵向数据的数据框,看起来像这样 试验 hr1、hr2、hr3、hr4的变量包括“姓名”栏下受试者以重复时间间隔报告的服务小时数。“workhr_bin”列包括使用分位数函数获得的bin。一共有十个箱子,1:10 我正在尝试生成多个由垃圾箱分面的小时数的意大利面条图。基本上,它应该产生10个图,一个图用于存储箱1中的数据,另一个图用于存储箱2中的数据,等等 我试着做: head(melt(test[,c(2:6)])) 但我最终得到的是workhr\u bin变量不见了,而是这样一个

我有一个包含纵向数据的数据框,看起来像这样

试验

hr1
hr2
hr3
hr4
的变量包括“姓名”栏下受试者以重复时间间隔报告的服务小时数。“workhr_bin”列包括使用分位数函数获得的bin。一共有十个箱子,1:10

我正在尝试生成多个由垃圾箱分面的小时数的意大利面条图。基本上,它应该产生10个图,一个图用于存储箱1中的数据,另一个图用于存储箱2中的数据,等等

我试着做:

head(melt(test[,c(2:6)]))
但我最终得到的是
workhr\u bin
变量不见了,而是这样一个文件:

  variable value
1   hours1    80
2   hours1    80
3   hours1    85
4   hours1    NA
5   hours1    80
6   hours1    NA
我也试过了

melt(test, id.var = "Names")
最后,我发现
workhr\u bin
变量也消失了

   Names variable value
    41   hr1      80.00
    42   hr1      80.00
    43   hr1      85.00
我尝试使用
lattice
ggplot2
但由于某些原因,我无法将数据转换为正确的格式,以生成代表每个箱子内样本的10个意大利面条图

基本上,我需要一个具有以下功能的数据帧:

Names    variable     value    workhr_bin
    41   hr1      80.00             7
    42   hr1      80.00             8
    43   hr1      85.00             6

然后,我希望能够创建一个x轴上带有“变量”(由
hr1
hr2
hr3
hr4
)和y轴上相应“值”的面状多色意大利面图

您应该学习
reformae2::melt
的文档

DF <- read.table(text="    Names     hr1    hr2    hr3    hr4      workhr_bin
      41     80     76     70     60               7
      42     80     74     75     NA               8
      43     85     NA     60     65               6
      44     NA     NA     NA     60               3
      45     80     70     NA     NA               8
      46     NA     NA     NA     60               3", header=TRUE)

library(reshape2)
DF_melt <- melt(DF, id.vars=c("Names", "workhr_bin"))
#make time numeric
DF_melt$variable <- as.numeric(gsub("hr", "", DF_melt$variable))

library(ggplot2)
p <- ggplot(DF_melt, aes(x=variable, y=value, color=factor(Names))) +
  geom_line() +
  geom_point() +
  facet_grid(workhr_bin ~ .)

print(p)

DF您应该学习
reformae2::melt
的文档

DF <- read.table(text="    Names     hr1    hr2    hr3    hr4      workhr_bin
      41     80     76     70     60               7
      42     80     74     75     NA               8
      43     85     NA     60     65               6
      44     NA     NA     NA     60               3
      45     80     70     NA     NA               8
      46     NA     NA     NA     60               3", header=TRUE)

library(reshape2)
DF_melt <- melt(DF, id.vars=c("Names", "workhr_bin"))
#make time numeric
DF_melt$variable <- as.numeric(gsub("hr", "", DF_melt$variable))

library(ggplot2)
p <- ggplot(DF_melt, aes(x=variable, y=value, color=factor(Names))) +
  geom_line() +
  geom_point() +
  facet_grid(workhr_bin ~ .)

print(p)
<代码>测向