Many tests that you run in R return an htest object. That type of object is basically a list with all the information about the test that has been carried out. All these htest objects contain at least a component statistic with the value of the statistic and a component p.value with the value of the p-value.
You can see this easily if you look at the structure of the returned object. The object returned by shapiro.test() looks like this:
> str(result) List of 4 $ statistic: Named num 0.933 ..- attr(*, “names”)= chr “W” $ p.value : num 7.76e-05 $ method : chr “Shapiro-Wilk normality test” $ data.name: chr “transform.beaver$temp” - attr(*, “class”)= chr “htest”
Because this htest objects are lists, you can use any of the list subsetting methods to extract the information. The following code, for example, extracts the p-value from the t-test on the beaver data:
> t.test(temp ~ activ, data = transform.beaver)$p.value [1] 7.269112e-31
The extraction of information from the htest object also works with the results of many more.test functions. You can check what kind of object a test returns by looking at the Help page for the test you want to use.