有没有一种有效的方法通过在R中测量多维数据帧的相关系数来过滤掉它?
我打算从多维数据到R中的一个数字向量找到Pearson相关系数。基本上,我希望通过使用Pearson方法得到相关矩阵,希望通过使用特定的相关系数作为阈值来保持多维数据中每列的行a.k.a和特征。但是,我尝试了一些R实现来实现这一点,但并没有得到正确的相关矩阵。我怎样才能得到这个?有人能告诉我如何在R中轻松实现这一点吗?有什么想法吗 可复制示例 我最初的尝试是: 但上面的代码并没有返回正确的相关矩阵。我想做的是,某个人的每个特征如何与他的年龄相关。有什么有效的方法来实现这一点吗?有什么想法吗 目标: 基本上,我想保留与年龄高度相关的特征。我没有更好的办法在R中这样做。有人能告诉我如何在R中轻松有效地完成他的任务吗?谢谢有没有一种有效的方法通过在R中测量多维数据帧的相关系数来过滤掉它?,r,dataframe,correlation,R,Dataframe,Correlation,我打算从多维数据到R中的一个数字向量找到Pearson相关系数。基本上,我希望通过使用Pearson方法得到相关矩阵,希望通过使用特定的相关系数作为阈值来保持多维数据中每列的行a.k.a和特征。但是,我尝试了一些R实现来实现这一点,但并没有得到正确的相关矩阵。我怎样才能得到这个?有人能告诉我如何在R中轻松实现这一点吗?有什么想法吗 可复制示例 我最初的尝试是: 但上面的代码并没有返回正确的相关矩阵。我想做的是,某个人的每个特征如何与他的年龄相关。有什么有效的方法来实现这一点吗?有什么想法吗 目标
mylist = do.call(rbind,
apply(persons_df, 1, function(x){
temp = cor.test(age_df$age, as.numeric(x))
data.frame(t = temp$statistic, p = temp$p.value)
}))
mylist
# t p
#a -1.060264 3.488012e-01
#b -2.292612 8.361623e-02
#c -16.785311 7.382895e-05
#d -1.362776 2.446304e-01
#e -1.922296 1.269356e-01
#f -4.671259 9.509393e-03
#g -3.719296 2.048710e-02
#h -2.684663 5.496171e-02
#i -15.814635 9.341701e-05
#j -2.423014 7.252635e-02
然后使用mylist筛选出您不需要的值。请举一个预期输出的示例。
age_df <- data.frame(personID= colnames(persons_df),
age=sample(1:50, 6 , replace = FALSE))
pearson_corr <- function(df1, df2, verbose=FALSE){
stopifnot(ncol(df1)==nrow(df2))
res <- as.data.frame()
lapply(colnames(df1), function(x){
lapply(x, rownames(y){
if(colnames(x) %in% rownames(df2)){
cor_mat <- stats::cor(y, df2$age, method = "pearson")
ncor <- ncol(cor_mat)
cmatt <- col(cor_mat)
ord <- order(-cmat, cor_mat, decreasing = TRUE)- (ncor*cmatt - ncor)
colnames(ord) <- colnames(cor_mat)
res <- cbind(ID=c(cold(ord), ID2=c(ord)))
res <- as.data.frame(cbind(out, cor=cor_mat[res]))
res <- cbind(res, cor=cor_mat[out])
}
})
})
return(final_df)
}
mylist = do.call(rbind,
apply(persons_df, 1, function(x){
temp = cor.test(age_df$age, as.numeric(x))
data.frame(t = temp$statistic, p = temp$p.value)
}))
mylist
# t p
#a -1.060264 3.488012e-01
#b -2.292612 8.361623e-02
#c -16.785311 7.382895e-05
#d -1.362776 2.446304e-01
#e -1.922296 1.269356e-01
#f -4.671259 9.509393e-03
#g -3.719296 2.048710e-02
#h -2.684663 5.496171e-02
#i -15.814635 9.341701e-05
#j -2.423014 7.252635e-02