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测试一下