我有一個關於R編程的問題。R編程:清理數據
如果我有類似下面的數據集:
LA NY MA
1 2 3
4 5 6
3 5
4
(換句話說,不是所有的行都是一樣的) 我試圖用lm
進行方差分析測試(決定是否意味着每個州的數字相同),並且它不斷顯示「發生錯誤」,因爲行不匹配。我該如何解決這個問題? 此外,當我做lm
,我通常做lm(y~x)
,所以如果我想要做lm(y~LA)
,那麼沒有y變量鍵入。我應該爲此創建一個新的列/行嗎?
我有一個關於R編程的問題。R編程:清理數據
如果我有類似下面的數據集:
LA NY MA
1 2 3
4 5 6
3 5
4
(換句話說,不是所有的行都是一樣的) 我試圖用lm
進行方差分析測試(決定是否意味着每個州的數字相同),並且它不斷顯示「發生錯誤」,因爲行不匹配。我該如何解決這個問題? 此外,當我做lm
,我通常做lm(y~x)
,所以如果我想要做lm(y~LA)
,那麼沒有y變量鍵入。我應該爲此創建一個新的列/行嗎?
也許你可以做這樣的事情。要讀取數據,請使用read.table
中的fill
參數。凡,你會把你的文件名。
(dat <- read.table(text = txt, header = TRUE, fill = TRUE))
# LA NY MA
# 1 1 2 3
# 2 4 5 6
# 3 3 5 NA
# 4 4 NA NA
然後我們可以取列的方法並創建一個新的兩列數據框。
cm <- colMeans(dat, na.rm = TRUE)
data.frame(state = names(cm), mean = unname(cm))
# state mean
# 1 LA 3.0
# 2 NY 4.0
# 3 MA 4.5
其中txt
是
txt <- "LA NY MA
1 2 3
4 5 6
3 5
4"
可以使用聚集()從tidyr包到數據塑造成用於分析的目的長格式。它需要多列,並將它們收集到鍵值對中:它使「寬」數據變得更長。
示例代碼:
LA <- c(1,4,3,4)
NY <- c(4,5,6, NA)
MA <- c(3,6, NA, NA)
df <- data.frame(LA, NY, MA) # data in wide format
library(tidyr)
df <- df %>% gather(attribute, value) # data in long format
你的數據不明確。這將有助於你發佈前幾行數據。如果它是一個數據框,在這裏發佈head(yourdataframe)的輸出。 – rnso 2014-11-02 02:19:50
編輯數據!對困惑感到抱歉! – Betty 2014-11-02 02:38:55
您可以將數據轉換爲2列格式:狀態和平均值。那麼它將更容易分析。 – rnso 2014-11-02 02:42:41