我目前正在尝试创建一个R函数来计算指定列与 Dataframe 的所有数值列的corr.test相关性。下面是我的代码:
#function returning only numeric columns
only_num <- function(dataframe)
{
nums <- sapply(dataframe, is.numeric)
dataframe[ , nums]
}
#function returning a one-variable function computing the cor.test correlation of the variable
#with the specified column
function_generator <- function(column)
{
function(x)
{
cor.test(x, column, na.action = na.omit)
}
}
data_analysis <- function(dataframe, column)
{
DF <- only_num(dataframe)
fonction_corr <- function_generator(column)
sapply(DF, fonction_corr)
}
data_analysis(40, 6, m, DF$Morphine)
当我在最后一行调用“data_analysis”时,我得到以下错误:
“cor.test.default(x,column,na.action=na.omit)中的错误:有限观测值不足”
它能代表什么?我应该改变什么?我有点卡住了...
谢谢。
克莱芒
3条答案
按热度按时间b4wnujal1#
“Not enough finite obervations”是cor.test在某些情况下返回的错误。如果你看一下cor.test.default源代码,你会看到:
cor.test从你的向量中删除NA值[...]
[...]
如果你的向量没有包含足够的非NA值(小于3),函数将返回错误。
在使用cor.test之前,让 Dataframe 中的所有列都包含足够的非NA值。
我希望这将是有用的。
ccrfmcuu2#
我看不到'm'或'DF$Morphine'是什么,所以我创建了一个包含数字和非数字列的数据框。
我保留了您编写的函数,但调用data_analysis的方式不同
当我运行这个函数时,我得到了数据框中每一列的cor.test输出。
to94eoyn3#
当我在ggplot中向aes调用添加颜色参数时,我遇到了这个问题,例如
我相信发生的事情是stat_cor然后分别对每个组运行回归。如果你只是想要颜色而不改变回归,请将其添加到标记中,例如: