【发布时间】:2019-07-02 23:18:36
【问题描述】:
尊敬的 Stackoverflow 社区,
我有一个数据集,其中包含日期时间 [posixct '%d.%m.%Y %H:%M'] 和 [A] 和 [V] 中的传感器测量值。 日期时间是一列,不同的传感器是其他列,每个传感器一列。
我想用每个传感器列内的值计算一个校正值。 校正值应每小时写入一个新列。 因此我想计算修正如下:
校正 = |x - (0.5 * (y+z))|
x= 传感器 1 的值,如果 Minute =='00'
y= 传感器 1 的值,如果 Minute =='03'
z= 传感器 1 的值,如果 Minute =='06'
我想要的是一个函数,它计算每小时的书面公式,但前提是给出一个小时内所有三分钟的值('00'&'03'&'06')并将校正值写入新列(Data$correction)。 我希望我能解释一下,我想做什么。
我尝试了几个循环以及应用和映射函数,但日期格式或函数总是有问题。 这对我来说似乎是最好的方法,虽然它现在不起作用,但我希望有办法让它开始工作。 我还认为,写出向量并将它们与 melt 或 merge 合并可能不是最好的方法。但现在我只是在苦苦挣扎,现在不知道如何解决这个问题。
我真的希望你能帮助我。非常感谢。
Test_sub <- read.table(file= 'Test_sub.csv',
header=T, sep= ';', dec='.', stringsAsFactors= F)
sensor1_V_0 <- Test_sub[format(Test_sub$Datehour, format = '%M') == '00',]
sensor1_V_3 <- Test_sub[format(Test_sub$Datehour, format = '%M') == '03',]
sensor12_V_6 <- Test_sub[format(Test_sub$Datehour, format = '%M') == '06',]
test_sub2<- mapply(function(x, y, z) x-(0.5*(y+z)), sensor1_V_0$sensor1_V, sensor1_V_3$sensor1_V, sensor1_V_6$sensor1_V)
【问题讨论】:
-
此外,我想加载数据集 (.csv),但我找不到方法,该怎么做。也许有人可以链接帮助,其中对此进行了解释。再次感谢!
-
你的意思是
read.csv()? -
其实我的意思是我想在 stackpverflow 上加载数据集。
-
在此处加载数据可能会有所帮助。但我在这里找不到附加一些数据的按钮。我已经知道如何在 R 中加载数据,但谢谢。
-
您无法加载堆栈溢出的数据。您可以使用
dput(head(data, 20))提供数据样本。