R中的计算列

R中的计算列,r,R,下面两种说法的区别是什么。他们给出了不同的结果,由于我试图从SPSS得到R,我有点困惑 ds$share.all <- ds[132]/ ds[3] mean(ds$share.all, na.rm=T) 第二个只打印.02xxxxx 任何帮助都将不胜感激。用单括号表示数据帧的一列(第一个示例)将生成仅包含该列的数据帧,但使用$运算符(如第二个示例中所示)只是一个向量。如果某个对象有名称(第一个示例中的col1),则打印该对象将打印与其关联的名称。使用ds[132]获得的数据帧具有nam

下面两种说法的区别是什么。他们给出了不同的结果,由于我试图从SPSS得到R,我有点困惑

ds$share.all <- ds[132]/ ds[3]
mean(ds$share.all, na.rm=T)
第二个只打印.02xxxxx


任何帮助都将不胜感激。

用单括号表示数据帧的一列(第一个示例)将生成仅包含该列的数据帧,但使用$运算符(如第二个示例中所示)只是一个向量。如果某个对象有名称(第一个示例中的col1),则打印该对象将打印与其关联的名称。使用ds[132]获得的数据帧具有name属性,但使用ds$col1获得的向量没有。ds$col1的等价物是使用双括号而不是单括号:ds[[132]]。例如:

> x<-data.frame(1:10)
> names(x)<-"var"
> class(x$var)
 [1] "integer"
> class(x[1])
[1] "data.frame"
> identical(x[1],x$var)
[1] FALSE
> identical(x[[1]],x$var)
[1] TRUE
>x个名称(x)类(x$var)
[1] “整数”
>类别(x[1])
[1] “数据帧”
>相同(x[1],x$var)
[1] 假的
>相同(x[[1]],x$var)
[1] 真的

用单括号表示数据框中的一列(第一个示例)会生成一个仅包含该列的数据框,但使用$运算符(如第二个示例中所示)只是一个向量。如果某个对象有名称(第一个示例中的col1),则打印该对象将打印与其关联的名称。使用ds[132]获得的数据帧具有name属性,但使用ds$col1获得的向量没有。ds$col1的等价物是使用双括号而不是单括号:ds[[132]]。例如:

> x<-data.frame(1:10)
> names(x)<-"var"
> class(x$var)
 [1] "integer"
> class(x[1])
[1] "data.frame"
> identical(x[1],x$var)
[1] FALSE
> identical(x[[1]],x$var)
[1] TRUE
>x个名称(x)类(x$var)
[1] “整数”
>类别(x[1])
[1] “数据帧”
>相同(x[1],x$var)
[1] 假的
>相同(x[[1]],x$var)
[1] 真的
> x<-data.frame(1:10)
> names(x)<-"var"
> class(x$var)
 [1] "integer"
> class(x[1])
[1] "data.frame"
> identical(x[1],x$var)
[1] FALSE
> identical(x[[1]],x$var)
[1] TRUE