我有一个关于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