正确测试到R中的data.frame [英] cor.test into data.frame in R

查看:54
本文介绍了正确测试到R中的data.frame的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请考虑以下示例:

require(MuMIn)
data(Cement)
d <- data.frame(Cement)

idx <- seq(11,13)
cor1 <- list()
for (i in 1:length(idx)){
  d2 <- d[1:idx[i],]
  cor1[[i]] <- cor.test(d2$X1,d2$X2, method = "pearson")
}
out <- lapply(cor1, function(x) c(x$estimate, x$conf.int, x$p.value))

在这里,我计算迭代循环中数据集的相关性。

Here I calculate the correlation for a dataset within an iteration loop.

我知道要生成一个data.frame,它由 out列表中的值组成。我尝试使用

I know want to generate one data.frame made up of the values in the list 'out'. I try using

df <- do.call(rbind.data.frame, out)

,但结果似乎不正确:

> df
  c.0.129614123011664..0.195326511912326..0.228579470307565.
1                                                  0.1296141
2                                                  0.1953265
3                                                  0.2285795
  c..0.509907346173941...0.426370467476045...0.368861726657293.
1                                                    -0.5099073
2                                                    -0.4263705
3                                                    -0.3688617
  c.0.676861607564929..0.691690831088494..0.692365536706126.
1                                                  0.6768616
2                                                  0.6916908
3                                                  0.6923655
  c.0.704071702633775..0.542941653020805..0.452566184329491.
1                                                  0.7040717
2                                                  0.5429417
3                                                  0.4525662

我追求的是什么。

如何生成data.frame,其第一列表示计算出cor.test的列表,在这种情况下为1到3,第二列指的是$ estimate,然后$ conf.int和%p.value生成五列data.frame。

How can I generate a data.frame that has the first column expressing which list the cor.test was calcuated i.e. 1 to 3 in this case, the second column referring to the $estimate and then $conf.int and %p.value resulting in a five column data.frame.

推荐答案

您要这样做吗?您的问题有点难以理解。列表中的索引列真的必要吗?整个第一列将与行名完全相同(出现在左侧)。

Is this what you're trying to do? Your question is a bit hard to understand. Is a column of indices from the list really necessary? The whole first column will be exactly the same as the row names (which appear on the left-hand side).

> D <- data.frame(cbind(index = seq(length(out)), do.call(rbind, out)))
> names(D)[2:ncol(D)] <- c('estimate', paste0('conf.int', 1:2), 'p.value')
> D
  index  estimate  conf.int1 conf.int2   p.value
1     1 0.1296141 -0.5099073 0.6768616 0.7040717
2     2 0.1953265 -0.4263705 0.6916908 0.5429417
3     3 0.2285795 -0.3688617 0.6923655 0.4525662

这篇关于正确测试到R中的data.frame的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆