我有什么是一个txt文件(mydata.txt)这样的数据:如何重新排列加载的时间序列数据?
Variable, DateTime, Value, Quality
A, 01-01-1970 00:00:00, 0, 0
A, 01-01-1970 00:02:00, 2, 2
A, 01-01-1970 00:04:00, 4, 1
A, 01-01-1970 00:06:00, 6, 0
B, 01-01-1970 00:02:00, 0.2, 0
B, 01-01-1970 00:04:00, 0.4, 1
B, 01-01-1970 00:06:00, 0.6, 1
B, 01-01-1970 00:10:00, 1.0, 0
C, 01-01-1970 00:00:00, 20.0, 0
C, 01-01-1970 00:04:00, 16.0, 0
C, 01-01-1970 00:08:00, 12.0, 3
我可以将其与
read.csv("mydata.txt", header = TRUE, sep = ",")
或
加载成R没有问题read.table("mydata.txt", header = TRUE, sep = ",")
但是我想与r一起工作会是这样的:
DateTime, A_Value, A_Quality, B_Value, B_Quality, C_Value, C_Quality
01-01-1970 00:00:00, 0, 0, NA, NA, 20.0, 0
01-01-1970 00:02:00, 2, 2, 0.2, 0, NA, NA
01-01-1970 00:04:00, 4, 1, 0.4, 1, 16.0, 0
01-01-1970 00:06:00, 6, 0, 0.6, 1, NA, NA
01-01-1970 00:08:00, NA, NA, NA, NA, 12.0, 3
01-01-1970 00:10:00, NA, NA, 1.0, 0, NA, NA
(其中第一列是日期/时间类型)。
我不知道我的文件中有多少个变量(即A,B,... Z),我不知道他们的名字 - 我所知道的只是他们的专栏。
我如何从我在文本文件中的数据集中获取到我希望在R中使用的数据集?
在此先感谢!
第一步:
谢谢!工作得很好。可以看到我需要按日期排序。当我这样做时,记录数字从4到8,从8到11是什么? –
@MortenGrum,是的。与“reshape2”的方法不同,“reshape”不会假设您想要同时对数据进行排序,但会按照遇到的顺序根据idvariables返回数据。一个简单的'mydf [order(mydf $ DateTime)]''会为你照顾。同样,行名称(记录号)与函数在源数据中遇到“idvar”的第一行相关。您会注意到第一次“00:10:00”在您的示例数据的第8行,因此这是您在此处看到的行名。 – A5C1D2H2I1M1N2O1R2T1