Как я могу напечатать p-значение с двумя значащими цифрами? - PullRequest
0 голосов
/ 03 июня 2019

Когда я печатаю значение p из моего t.test, выполняя:

ttest_bb[3]

Возвращает полное значение p. Как я могу сделать так, чтобы он печатал только первые два целых числа? т.е. .03 вместо .034587297?

1 Ответ

1 голос
/ 03 июня 2019

Вывод t.test является списком. Если вы используете [ для захвата p-значения, то возвращается список с одним элементом. Вы хотите использовать [[, чтобы получить элемент, содержащийся в месте в списке, возвращаемом t.test, если вы хотите рассматривать его как вектор.

> ttest_bb <- t.test(rnorm(20), rnorm(20))
> ttest_bb

    Welch Two Sample t-test

data:  rnorm(20) and rnorm(20)
t = -2.5027, df = 37.82, p-value = 0.01677
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.4193002 -0.1498456
sample estimates:
 mean of x  mean of y 
-0.3727489  0.4118240 

> # Notice that what is returned when subsetting like this is
> # a list with the name p.value
> ttest_bb[3]
$`p.value`
[1] 0.01676605
> # If we use the double parens then it extracts just the vector contained
> ttest_bb[[3]]
[1] 0.01676605
> # What you're seeing is this:
> round(ttest_bb[3])
Error in round(ttest_bb[3]) : 
  non-numeric argument to mathematical function

> # If you use double parens you can use that value
> round(ttest_bb[[3]],2)
[1] 0.02
> # I prefer using the named argument to make it more clear what you're grabbing
> ttest_bb$p.value
[1] 0.01676605
> round(ttest_bb$p.value, 2)
[1] 0.02
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...