我有一个数据帧列表,其中每个帧都包含单个系统的相同类型的测量值。例如。,
$system1
file cumSize cumloadTime query1
1 ../data/data1.dat 100000 158.1000 0.4333333
2 ../data/data2.dat 200000 394.9000 0.5000000
3 ../data/data3.dat 250000 561.8667 0.6666667
$system2
file cumSize cumloadTime query1
1 ../data/data1.dat 100000 120.1000 0.4333333
2 ../data/data2.dat 200000 244.9000 0.4500000
3 ../data/data3.dat 250000 261.8667 0.2666667
现在我想使用以下方法在单独的图中显示这些数据框的几个方面matplot命令。因此我需要将上面的输入数据结构转换为以下输出结构:
$cumloadTime
cumSize system1 system2
100000 158.1000 120.1000
200000 394.9000 244.9000
250000 561.8667 261.8667
$query1
cumSize system1 system2
100000 0.4333333 0.4333333
200000 0.5000000 0.4500000
250000 0.6666667 0.2666667
我玩过reshape, merge, and melt功能,但还没有找到解决方案。
感谢您的任何提示...
Use rbind
创建一个包含所有内容的数据框。
data_list <- list()
data_list[["system1"]] <- read.table(tc <- textConnection("file cumSize cumloadTime query1
1 ../data/data1.dat 100000 158.1000 0.4333333
2 ../data/data2.dat 200000 394.9000 0.5000000
3 ../data/data3.dat 250000 561.8667 0.6666667"), header = TRUE); close(tc)
data_list[["system2"]] <- read.table(tc <- textConnection("file cumSize cumloadTime query1
1 ../data/data1.dat 100000 120.1000 0.4333333
2 ../data/data2.dat 200000 244.9000 0.4500000
3 ../data/data3.dat 250000 261.8667 0.2666667"), header = TRUE); close(tc)
for(n in names(data_list)) data_list[[n]]$system <- n
all_data <- do.call(rbind, data_list)
Forget matplot
, use ggplot
相反,例如
p1 <- ggplot(all_data, aes(cumSize, cumloadTime, color = system)) + geom_line(); p1
p2 <- ggplot(all_data, aes(cumSize, query1, color = system)) + geom_line(); p2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)