繁体   English   中英

如何给变量赋值?

[英]How to assign a value to a variable?

我想知道如何为变量赋值?

例如我执行一个简单的 t.test

" One Sample t-test
data:  FirstExample
t = 19.3645, df = 599, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
90 percent confidence interval:
 0.3522468 0.4177532
sample estimates:
mean of x 
    0.385" 

我想将较低的置信区间分配给一个变量:

LowerConf= 0.3522468 

有没有办法自动做到这一点?

通常,您完全按照显示的方式分配值,使用variable = value 但是,您正在处理 t 检验的结果,其中的结果是一个更复杂的值。

您仍然可以分配 t 检验的结果:

result = t.test(a)

现在问题变成了:如何提取置信区间(及其下限)?

您可以通过names(result)检查result存储了哪些值:

names(result)
# [1] "statistic"   "parameter"   "p.value"     "conf.int"    "estimate"
# [6] "null.value"  "alternative" "method"      "data.name"

所以我们走了:你想要的值是conf.int 您可以通过对结果进行子集化来获得它:

result$conf.int
# [1]  0.3522468 0.4177532
# attr(,"conf.level")
# [1] 0.95

您可以像往常一样将此值分配给变量:

lower_conf = result$conf.int[1] # 1 is lower, 2 is upper bound.

如果你需要测试的置信区间(虽然这有点奇怪),你也可以直接赋值,不需要中间result变量:

lower_conf = t.test(a)$conf.int[1]

查看有关$的文档(这可以通过?`$`在 R 中完成)了解更多详细信息。

检查 R 中对象的一般建议是使用str

str(a)
List of 9
 $ statistic  : Named num -5.43
  ..- attr(*, "names")= chr "t"
 $ parameter  : Named num 22
  ..- attr(*, "names")= chr "df"
 $ p.value    : num 1.86e-05
 $ conf.int   : atomic [1:2] -11.05 -4.95
  ..- attr(*, "conf.level")= num 0.95
 $ estimate   : Named num [1:2] 5.5 13.5
  ..- attr(*, "names")= chr [1:2] "mean of x" "mean of y"
 $ null.value : Named num 0
  ..- attr(*, "names")= chr "difference in means"
 $ alternative: chr "two.sided"
 $ method     : chr "Welch Two Sample t-test"
 $ data.name  : chr "1:10 and c(7:20)"
 - attr(*, "class")= chr "htest"

然后在这里,对象是一个列表,您可以使用$ (在控制台中)或使用[和/或[[在您的脚本中对其进行子集化。 例如:

a[['conf.int']] 

存在三种不同的赋值运算符:其中两种具有向左和向右形式。

运算符 <- 和 = 分配到评估它们的环境中。 运算符 <- 可以在任何地方使用,而运算符 = 只允许在顶层(例如,在命令提示符下键入的完整表达式中)或作为花括号表达式列表中的子表达式之一。

运算符 <<- 和 ->> 通常仅用于函数中,并导致通过父环境搜索被分配变量的现有定义。 如果找到这样一个变量(并且它的绑定没有被锁定),那么它的值被重新定义,否则,赋值发生在全局环境中。

x <- value
x <<- value
value -> x
value ->> x
x = value

参数 x:a 变量名(可能被引用)。

值:要分配给 x 的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM