数据帧格式java_如何将3D数据帧融合为长格式

我有一个包含如下所示数据的文本文件:

# time; allPop; allPop; allPop; ions1; ions1; ions1; elec1; elec1; elec1;

# ; allNodes; node0; node1; allNodes; node0; node1; allNodes; node0; node1;

0.011082077;-330.84293;-5.28E-04;-0.008617032;2.39E-12;9.94E-13;1.29E-12;-331.09302;-0.015284455;-0.013646739;

0.011132077;-332.19788;1.17E-04;-0.004885694;2.76E-12;9.99E-13;1.30E-12;-332.44925;-0.014786674;-0.009936244;

0.011182077;-330.7951;2.05E-04;-0.003262551;3.10E-12;9.98E-13;1.27E-12;-331.0478;-0.015050205;-0.00879398;

0.011232077;-331.62976;0.001411756;-0.001674229;3.35E-12;9.85E-13;1.28E-12;-331.88593;-0.015500192;-0.008433639;

0.011282077;-333.03204;-8.67E-04;-0.001743055;3.54E-12;9.81E-13;1.29E-12;-333.28497;-0.01616466;-0.009426347;

0.011332078;-330.76794;-0.001515289;-0.001287116;3.66E-12;9.86E-13;1.31E-12;-331.01965;-0.015228378;-0.008569364;

0.011382078;-331.39044;0.002540908;-5.25E-04;3.71E-12;9.92E-13;1.32E-12;-331.6468;-0.014409032;-0.008052639;

0.011432078;-330.43414;-0.001792867;-2.51E-04;3.68E-12;9.60E-13;1.32E-12;-330.68936;-0.01623829;-0.008444168;

0.011482078;-330.86917;4.81E-04;1.41E-04;3.70E-12;9.76E-13;1.33E-12;-331.12268;-0.014885588;-0.009113268;

0.011532078;-330.33435;6.66E-04;-1.58E-04;3.72E-12;9.79E-13;1.33E-12;-330.58813;-0.015093705;-0.009414361;

0.011582078;-330.7523;-7.40E-04;-0.001010344;3.70E-12;9.66E-13;1.32E-12;-331.00278;-0.015855879;-0.009049743;

0.011632077;-329.58597;2.41E-04;-1.02E-04;3.71E-12;9.67E-13;1.32E-12;-329.83893;-0.015224142;-0.008584219;

0.011682077;-331.54898;-0.001295898;0.001874733;3.71E-12;9.69E-13;1.31E-12;-331.80432;-0.015666598;-0.008926244;

因此,作为时间的函数,我有不同的群体与不同的节点相关联 . allPop是给定节点上所有群体的总和,而allNodes是所有节点上给定群体的总和 .

为了便于阅读,上面的文件被截断,这解释了为什么在这个例子中总和不匹配 .

现在,我需要将这些数据以长格式存储在数据框中,以便能够使用ggplot2轻松绘制它 .

读取两行 Headers 可以通过以下方式完成:

header

header

header

header

读取数据可以通过以下方式完成:

data.vs.time

现在我想做的是以长格式融合(从reshape2)这个数据帧 .

我的第一个想法如下:

colnames(data.vs.time)

colnames(data.vs.time)[[1]]

data.vs.time.molten

这给了我类似的东西:

time variable value

1 0.01000000 allPop/allNodes -2.927736e-13

2 0.01000000 allPop/allNodes -6.097465e+02

3 0.01000000 allPop/allNodes -5.440071e+02

4 0.01000000 allPop/allNodes -5.120425e+02

5 0.01000000 allPop/allNodes -4.633145e+02

6 0.01000000 allPop/allNodes -4.168849e+02

[...]

好吧,我可以用它绘图:

ggplot(data.vs.time.molten, aes(time, value, color = variable)) + geom_line()

它有效,但它不是真的可读 . 曲线太多,颜色不足 .

如果我只想在一个节点或一个人群中显示数据,我必须做以下事情:

ggplot(data.vs.time.molten[grepl("node0", as.character(data.vs.time.molten$variable)), ], aes(time, value, color = variable)) + geom_line()

但传说是多余的 .

有没有更好的方法呢?

我正在考虑获得一个包含4列的数据框:时间,节点,弹出,值,但不知道如何拥有它 .

是否有一个很好的解决方案以可读的方式绘制曲线?在现实生活中,我对“变量”列有36个级别 . 将它们全部绘制在一个图表中是没有用的 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值