我嘗試使用各種平滑功能,但沒有找到合適的我。 我從其中包含傳感器數據和對每一行的日期時間戳的CSV文件讀取數據幀:數據幀平滑功能
df
#datetime value1 value2 value3 ...
#2015-10-2 05-10-12 0.1 1000 28 ...
#2015-10-2 05-10-14 0.21 2500 17 ...
#2015-10-2 05-10-19 0.52 1700 37 ...
#2015-10-2 05-11-01 0.31 1530 42 ...
#2015-10-2 05-11-03 0.25 1956 33 ...
#2015-10-2 05-11-10 0.63 2750 22 ...
#2015-10-2 05-11-30 0.23 322 32 ...
#2015-10-2 15-00-43 0.12 933 17 ...
#2015-10-3 10-43-52 0.03 3244 43 ...
#2015-10-3 12-11-45 0.73 2334 12 ...
#2015-10-4 00-32-34 0.54 2321 27 ...
...
正如你所看到的datetime列沒有固定的時間間隔。我認爲這是一個問題。 現在我想平滑數據幀列值1。
好的,我的問題已被擱置,所以我想詳細詢問一下。 對不起,我是R(自幾天以來)的新手,也是這個論壇的新手(自昨天起),所以我必須道歉,因爲我的問題不夠清楚,並且不知道每個格式化規則。但我會盡我所能參與進來!
我拿起一個例子來自https://stats.stackexchange.com/questions/30975/how-to-add-non-linear-trend-line-to-a-scatter-plot-in-r此頁:
n <- 10
x <-seq(n)
y <- rnorm(n, 50 + 30 * x^(-0.2), 1)
Data <- data.frame(x,y)
plot(y ~ x, Data)
loess_fit <- loess(y ~ x, Data)
lines(Data$x, predict(loess_fit), col = "blue")
nls_fit <- nls(y ~ a + b * x^(-c), Data, start = list(a = 80, b = 20, c = 0.2))
lines(Data$x, predict(nls_fit), col = "red")
這個例子顯示清楚如何平滑趨勢線添加到該值顯示。
現在我的問題是,我沒有後續的數值作爲x
,但我有日期時間值。 所以我修改了上面的例子是:
x <- strptime(c("2015-10-02 11:07:43", "2015-10-02 12:09:45", "2015-10-02 15:10:10", "2015-10-02 18:00:23",
"2015-10-02 22:31:12", "2015-10-03 02:01:53", "2015-10-03 02:05:52", "2015-10-03 04:12:37",
"2015-10-03 07:47:08", "2015-10-03 11:43:41"), format = "%Y-%m-%d %H:%M:%S")
Data <- data.frame(x,y)
plot(y ~ x, Data)
loess_fit <- loess(y ~ x, Data)
lines(Data$x, predict(loess_fit), col = "blue")
nls_fit <- nls(y ~ a + b * x^(-c), Data, start = list(a = 80, b = 20, c = 0.2))
lines(Data$x, predict(nls_fit), col = "red")
如果我運行這個例子中,我得到一個錯誤在該行
loess_fit <- loess(y ~ x, Data)
說:
Error in simpleLoess(y, x, w, span, degree = degree, parametric = parametric, :
(converted from warning) NAs introduced by coercion
任何暗示用於獲取平滑的趨勢也對這些數據?
_「但是沒有找到合適的人......」......你究竟是什麼意思? – miradulo
我發現了一些函數「黃土」,與隨後的x值一起使用,而不是與datetimes – Juppes
歡迎來到StackOverflow!請閱讀關於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出[可重現的示例]的信息(http://stackoverflow.com/questions/ 5963269 /如何對化妝一個偉大-R-重複性,例如/ 5963610)。這會讓其他人更容易幫助你。 – Jaap