簡體   English   中英

匯總和lm模型錯誤

[英]Summarise and lm model error

嘗試創建統計表時,我遇到了summary.lm r.squared值的問題。

首先,我從csv中讀取數據

df <- as.data.frame(read.csv("BCO.csv", header = TRUE, stringsAsFactors = FALSE))
df <- df[,2:4]

然后我開始研究趨勢...

CLDD_trend <- ddply(df, .(STATION_NAME), function(z)coef(lm(CLDD_yr ~ year, data = z)))

這是我遇到問題的地方...

CLDD_rsq <- ddply(df, .(STATION_NAME), summarise, rsq = summary(lm(CLDD_yr ~ year))$r.squared)

我收到此錯誤...

Error: invalid term in model formula

這是df的負責人

> head(df)
                    STATION_NAME year CLDD_yr
1 ALBUQUERQUE FOOTHILLS NE NM US 1992    3341
2 ALBUQUERQUE FOOTHILLS NE NM US 1993    4443
3 ALBUQUERQUE FOOTHILLS NE NM US 1994    5319
4 ALBUQUERQUE FOOTHILLS NE NM US 1995    5070
5 ALBUQUERQUE FOOTHILLS NE NM US 1996    5338
6 ALBUQUERQUE FOOTHILLS NE NM US 1997    5105

和CLDD_trend的負責人

> head(CLDD_trend)
                             STATION_NAME (Intercept)      year
1          ALBUQUERQUE FOOTHILLS NE NM US -185183.485 95.159091
2 ALBUQUERQUE INTERNATIONAL AIRPORT NM US -138428.871 73.121774
3                   ALBUQUERQUE VLY NM US -138218.809 72.243478
4           PETROGLYPH NATIONAL MON NM US  -95959.130 51.074086
5                       SANDIA PARK NM US    7758.845 -3.439124

我的目的是向CLDD_trend追加一個新列,其中包含summary函數的r.squared部分的結果。

stat <- cbind(CLDD_trend[,1&3], CLDD_rsq$rsq)

您可以看到我的模型中的錯誤在哪里嗎? 我感到難過。

原來我與dplyr和plyr有某種沖突。

我解決了這個問題

detach()
library(plyr)
df <- as.data.frame(read.csv("BCO.csv", header = TRUE, stringsAsFactors = FALSE))
df <- df[,2:4]
CLDD_trend <- ddply(df, .(STATION_NAME), function(z)coef(lm(CLDD_yr ~ year, data = z)))
CLDD_rsq <- ddply(df, .(STATION_NAME), summarise, rsq = summary(lm(CLDD_yr ~ year))$r.squared)
stat <- cbind(CLDD_trend[,1&3], CLDD_rsq$rsq)

這是一次提取兩個統計信息的方法

CLDD_trend <- ddply(df, .(STATION_NAME), function(z){
  mod <- lm(CLDD_yr ~ year, data = z)
  c(coef(mod), rsq = summary(mod)$r.squared
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM