R 变量的类型无效(NULL)
所以我有这些数据-R 变量的类型无效(NULL),r,R,所以我有这些数据- hours A B id 2.9 1 1 1 2.3 1 1 2 2.3 1 1 3 2.5 1 1 4 4.6 1 2 1 attach(hayfever.data) hayfever.lm = lm(hayfever.data$hours ~ ha
hours A B id
2.9 1 1 1
2.3 1 1 2
2.3 1 1 3
2.5 1 1 4
4.6 1 2 1
attach(hayfever.data)
hayfever.lm = lm(hayfever.data$hours ~ hayfever.data$A * hayfever$B)
但是我得到了这个错误-
Error: invalid type (NULL) for variable 'hayfever.data$A'
当我这样做的时候,我得到了同样的结果-
hayfever.lm = lm(hayfever.data$hours ~ A * B)
除了变量名更改之外
为什么会这样
dput的输出
## structure(list(hours = c(2.9, 2.3, 2.3, 2.5, 4.6, 4.4, 4.9, 4.5,
## 4.8, 4.5, 4.4, 4.6, 5.8, 5.2, 5.2, 5.3, 8.4, 9.1, 8.7, 9, 9.1,
## 9.4, 8.7, 9.4, 6.4, 5.7, 5.9, 7.2, 9.9, 10.5, 10.6, 12.1, 13.5,
## 13, 13.3, 16.2), A = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
## 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
## 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), B = c(1L, 1L, 1L, 1L,
## 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
## 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
## ), id = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
## 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
## 2L, 3L, 4L, 1L, 2L, 3L, 4L)), .Names = c("hours", "A", "B", "id"
## ), class = "data.frame", row.names = c(NA, -36L))
无需在此处使用
附件
。这是您应该做的:
lm(hours ~ A * B,data=hayfever.data)
Call:
lm(formula = hours ~ A * B, data = hayfever.data)
Coefficients:
(Intercept) A B A:B
0.4 NA 2.1 NA
其中数据为:
hayfever.data <- read.table(text='hours A B id
+ 2.9 1 1 1
+ 2.3 1 1 2
+ 2.3 1 1 3
+ 2.5 1 1 4
+ 4.6 1 2 1',header=TRUE)
hayfever.data无需在此处使用attach
。这是您应该做的:
lm(hours ~ A * B,data=hayfever.data)
Call:
lm(formula = hours ~ A * B, data = hayfever.data)
Coefficients:
(Intercept) A B A:B
0.4 NA 2.1 NA
其中数据为:
hayfever.data <- read.table(text='hours A B id
+ 2.9 1 1 1
+ 2.3 1 1 2
+ 2.3 1 1 3
+ 2.5 1 1 4
+ 4.6 1 2 1',header=TRUE)
hayfever.data无需在此处使用attach
。这是您应该做的:
lm(hours ~ A * B,data=hayfever.data)
Call:
lm(formula = hours ~ A * B, data = hayfever.data)
Coefficients:
(Intercept) A B A:B
0.4 NA 2.1 NA
其中数据为:
hayfever.data <- read.table(text='hours A B id
+ 2.9 1 1 1
+ 2.3 1 1 2
+ 2.3 1 1 3
+ 2.5 1 1 4
+ 4.6 1 2 1',header=TRUE)
hayfever.data无需在此处使用attach
。这是您应该做的:
lm(hours ~ A * B,data=hayfever.data)
Call:
lm(formula = hours ~ A * B, data = hayfever.data)
Coefficients:
(Intercept) A B A:B
0.4 NA 2.1 NA
其中数据为:
hayfever.data <- read.table(text='hours A B id
+ 2.9 1 1 1
+ 2.3 1 1 2
+ 2.3 1 1 3
+ 2.5 1 1 4
+ 4.6 1 2 1',header=TRUE)
hayfever.data如果我使用您的dput
的输出将数据输入到R中,您的代码就会正常工作
hayfever.data <- structure(list(hours = c(2.9, 2.3, 2.3, 2.5, 4.6, 4.4, 4.9, 4.5,
4.8, 4.5, 4.4, 4.6, 5.8, 5.2, 5.2, 5.3, 8.4, 9.1, 8.7, 9, 9.1,
9.4, 8.7, 9.4, 6.4, 5.7, 5.9, 7.2, 9.9, 10.5, 10.6, 12.1, 13.5,
13, 13.3, 16.2), A = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), B = c(1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
), id = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L)), .Names = c("hours", "A", "B", "id"
), class = "data.frame", row.names = c(NA, -36L))
hayfever.lm <- lm(hours ~ A * B, data=hayfever.data)
hayfever.lm
# Call:
# lm(formula = hours ~ A * B, data = hayfever.data)
#
# Coefficients:
# (Intercept) A B A:B
# 1.9833 0.4208 -0.5542 1.4062
hayfever.data如果我使用您的dput
的输出将数据输入到R中,您的代码就会正常工作
hayfever.data <- structure(list(hours = c(2.9, 2.3, 2.3, 2.5, 4.6, 4.4, 4.9, 4.5,
4.8, 4.5, 4.4, 4.6, 5.8, 5.2, 5.2, 5.3, 8.4, 9.1, 8.7, 9, 9.1,
9.4, 8.7, 9.4, 6.4, 5.7, 5.9, 7.2, 9.9, 10.5, 10.6, 12.1, 13.5,
13, 13.3, 16.2), A = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), B = c(1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
), id = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L)), .Names = c("hours", "A", "B", "id"
), class = "data.frame", row.names = c(NA, -36L))
hayfever.lm <- lm(hours ~ A * B, data=hayfever.data)
hayfever.lm
# Call:
# lm(formula = hours ~ A * B, data = hayfever.data)
#
# Coefficients:
# (Intercept) A B A:B
# 1.9833 0.4208 -0.5542 1.4062
hayfever.data如果我使用您的dput
的输出将数据输入到R中,您的代码就会正常工作
hayfever.data <- structure(list(hours = c(2.9, 2.3, 2.3, 2.5, 4.6, 4.4, 4.9, 4.5,
4.8, 4.5, 4.4, 4.6, 5.8, 5.2, 5.2, 5.3, 8.4, 9.1, 8.7, 9, 9.1,
9.4, 8.7, 9.4, 6.4, 5.7, 5.9, 7.2, 9.9, 10.5, 10.6, 12.1, 13.5,
13, 13.3, 16.2), A = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), B = c(1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
), id = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L)), .Names = c("hours", "A", "B", "id"
), class = "data.frame", row.names = c(NA, -36L))
hayfever.lm <- lm(hours ~ A * B, data=hayfever.data)
hayfever.lm
# Call:
# lm(formula = hours ~ A * B, data = hayfever.data)
#
# Coefficients:
# (Intercept) A B A:B
# 1.9833 0.4208 -0.5542 1.4062
hayfever.data如果我使用您的dput
的输出将数据输入到R中,您的代码就会正常工作
hayfever.data <- structure(list(hours = c(2.9, 2.3, 2.3, 2.5, 4.6, 4.4, 4.9, 4.5,
4.8, 4.5, 4.4, 4.6, 5.8, 5.2, 5.2, 5.3, 8.4, 9.1, 8.7, 9, 9.1,
9.4, 8.7, 9.4, 6.4, 5.7, 5.9, 7.2, 9.9, 10.5, 10.6, 12.1, 13.5,
13, 13.3, 16.2), A = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), B = c(1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
), id = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L)), .Names = c("hours", "A", "B", "id"
), class = "data.frame", row.names = c(NA, -36L))
hayfever.lm <- lm(hours ~ A * B, data=hayfever.data)
hayfever.lm
# Call:
# lm(formula = hours ~ A * B, data = hayfever.data)
#
# Coefficients:
# (Intercept) A B A:B
# 1.9833 0.4208 -0.5542 1.4062
hayfever.data我在瑞士的数据集上得到了同样的错误。原来我的问题是因为区分大小写。哦!基本上,R告诉我们引用的变量不存在,所以我们最好通过命名/拼写来寻找解决方案。我使用的是微软的R发行版,所以其他人可能不那么挑剔
> lm(swiss$catholic~swiss$fertility, swiss)
Error in model.frame.default(formula = swiss$catholic ~ swiss$fertility, :
invalid type (NULL) for variable 'swiss$catholic'
> lm(swiss$Catholic~swiss$Fertility)
Call:
lm(formula = swiss$Catholic ~ swiss$Fertility, swiss)
Coefficients:
(Intercept) swiss$Fertility
-67.441 1.548
>
我在瑞士数据集上也犯了同样的错误。原来我的问题是因为区分大小写。哦!基本上,R告诉我们引用的变量不存在,所以我们最好通过命名/拼写来寻找解决方案。我使用的是微软的R发行版,所以其他人可能不那么挑剔
> lm(swiss$catholic~swiss$fertility, swiss)
Error in model.frame.default(formula = swiss$catholic ~ swiss$fertility, :
invalid type (NULL) for variable 'swiss$catholic'
> lm(swiss$Catholic~swiss$Fertility)
Call:
lm(formula = swiss$Catholic ~ swiss$Fertility, swiss)
Coefficients:
(Intercept) swiss$Fertility
-67.441 1.548
>
我在瑞士数据集上也犯了同样的错误。原来我的问题是因为区分大小写。哦!基本上,R告诉我们引用的变量不存在,所以我们最好通过命名/拼写来寻找解决方案。我使用的是微软的R发行版,所以其他人可能不那么挑剔
> lm(swiss$catholic~swiss$fertility, swiss)
Error in model.frame.default(formula = swiss$catholic ~ swiss$fertility, :
invalid type (NULL) for variable 'swiss$catholic'
> lm(swiss$Catholic~swiss$Fertility)
Call:
lm(formula = swiss$Catholic ~ swiss$Fertility, swiss)
Coefficients:
(Intercept) swiss$Fertility
-67.441 1.548
>
我在瑞士数据集上也犯了同样的错误。原来我的问题是因为区分大小写。哦!基本上,R告诉我们引用的变量不存在,所以我们最好通过命名/拼写来寻找解决方案。我使用的是微软的R发行版,所以其他人可能不那么挑剔
> lm(swiss$catholic~swiss$fertility, swiss)
Error in model.frame.default(formula = swiss$catholic ~ swiss$fertility, :
invalid type (NULL) for variable 'swiss$catholic'
> lm(swiss$Catholic~swiss$Fertility)
Call:
lm(formula = swiss$Catholic ~ swiss$Fertility, swiss)
Coefficients:
(Intercept) swiss$Fertility
-67.441 1.548
>
str(hayfever.data)
显示什么?您是否尝试过hayfever.lm=lm(小时~A*B,数据=hayfever.data)
?另外,您不应该使用attach
…不要使用attach。。真的吗?当我运行str(hayfever.data)时,我得到这个-###“data.frame”:36 obs。共1个变量:##$hours…..A……B……id:Factor w/36 levels“2.3 1 2”,…:4 1 2 3 9 5 12 7 11 8……我也试过了,我键入时找不到hours嘿@praks5432,编辑你的问题,将键入dput(hayfever.data)
时得到的输出包括在内。或者,如果太大,请在键入dput(head(hayfever.data))
时给我们输出str(hayfever.data)
显示什么?您是否尝试过hayfever.lm=lm(小时~A*B,数据=hayfever.data)
?另外,您不应该使用attach
…不要使用attach。。真的吗?当我运行str(hayfever.data)时,我得到这个-###“data.frame”:36 obs。共1个变量:##$hours…..A……B……id:Factor w/36 levels“2.3 1 2”,…:4 1 2 3 9 5 12 7 11 8……我也试过了,我键入时找不到hours嘿@praks5432,编辑你的问题,将键入dput(hayfever.data)
时得到的输出包括在内。或者,如果太大,请在键入dput(head(hayfever.data))
时给我们输出str(hayfever.data)
显示什么?您是否尝试过hayfever.lm=lm(小时~A*B,数据=hayfever.data)
?另外,您不应该使用attach
…不要使用attach。。真的吗?当我运行str(hayfever.data)时,我得到这个-###“data.frame”:36 obs。共1个变量:##$hours…..A……B……id:Factor w/36 levels“2.3 1 2”,…:4 1 2 3 9 5 12 7 11 8……我也试过了,我键入时找不到hours嘿@praks5432,编辑你的问题,将键入dput(hayfever.data)
时得到的输出包括在内。或者,如果太大,请在键入dput(head(hayfever.data))
时给我们输出str(hayfever.data)
显示什么?您是否尝试过hayfever.lm=lm(小时~A*B,数据=hayfever.data)
?另外,您不应该使用attach
…不要使用attach。。真的吗?当我运行str(hayfever.data)时,我得到这个-###“data.frame”:36 obs。共1个变量:##$hours…..A……B……id:Factor w/36 levels“2.3 1 2”,…:4 1 2 3 9 5 12 7 11 8……我也试过了,我键入时找不到hours嘿@praks5432,编辑你的问题,将键入dput(hayfever.data)
时得到的输出包括在内。或者,如果该值太大,请在键入dput(head(hayfever.data))
I get object'hours'not foundNo时向我们提供输出。我编辑我的答案以使用相同的数据变量名。我现在应该为你工作。是的-同样的交易-I小时不是found@praks5432在新的R会话中测试它。你之所以受到这些伤害,是因为我正在使用KnitR文档,所以我怎么做?我没有找到对象“小时数”。我编辑我的答案以使用相同的数据变量名。我现在应该为你工作。是的-同样的交易-I小时不是found@praks5432在新的R会话中测试它。你之所以受到这些伤害,是因为我正在使用KnitR文档,所以我怎么做?我没有找到对象“小时数”。我编辑我的答案以使用相同的数据变量名。我现在应该为你工作。是的-同样的交易-I小时不是found@praks5432测试一下