如何将两次读取的多次读取的宽格式数据转换为高格式数据?

时间:2019-05-27 06:23:07

标签: r dataframe col

因此,我是R的新手,正在使用一个数据集,该数据集涉及一系列传感器的每日读数,这些传感器的列在不同时间具有读数(例如,日期,[reading1] 9am,[reading1] 3pm, [reading2] 9am,[reading2] 3pm),以及全天的一些阅读数据。

我看过Base R中reshape()函数的文档,这听起来有点像我想要的,但是我不确定它是如何工作的,而且该文档似乎不太清楚;我很难理解它的意思。我在这里也看到过各种各样的文章,提到了其他库中的函数,谈论了诸如tidyr和reshape2之类的库,但是我也不知道它们的工作原理,因为答案很少真正地解释而不是仅仅发布代码片段,而且我发现的所有问题似乎都与我遇到的问题没有直接关系。

我已经尝试过这段代码,但是由于某些原因,它似乎没有起作用:

readings = c("Reading1","Reading2","Reading3","Reading4","Reading5","Reading6") reading_times = c("9:00","15:00") temp <- reshape(df, direction = "long", varying = c(10:21), v.names = readings, times = reading_times)

我想将其转换为一个数据框,该数据框具有一个时间列以及一个现有的日列,并且每个相应的定时阅读列中的数据都与它们各自的时间相关联,以便它像这样读取

date,time,reading1,reading2,reading3,reading4,reading5,reading6 [date],9am,[value1],[value2],[value3],[value4],[value5],[value6] [date],3pm,[value1],[value2],[value3],[value4],[value5],[value6]

我已经尝试了上面的代码,虽然给了我正确的数据框格式,但其中包含错误的数据-原始表中的每一列都代表了两次,原始两列中的每一列都代表了一次

我还尝试通过向其传递[10,12,14,16,18,20,11,13,15,17,19,21]的向量来手动交织“ varying”参数,但是错误的数据是仍然分配给错误的列,尽管它不再增加一倍。

0 个答案:

没有答案