📜  仅计算 R 中数字列的相关矩阵

📅  最后修改于: 2022-05-13 01:54:30.392000             🧑  作者: Mango

仅计算 R 中数字列的相关矩阵

相关矩阵是数据帧的数字属性之间关系的表格表示。表中的值是属性之间的相关系数。

使用的数据集:畅销书

创建相关矩阵 cor()函数以数据帧作为参数调用。

例子:



R
df<-read.csv("bestsellers.csv")
  
cor(df)


R
df<-read.csv("bestsellers.csv")
  
cor(df[sapply(df,is.numeric)])


R
df<-read.csv("bestsellers.csv")
  
cor(df[, unlist(lapply(df, is.numeric))])


输出:

Error in cor(df) : 'x' must be numeric

当数据帧由数值以外的值组成时,此函数失败。在这种情况下创建相关矩阵可以通过下面给出的任何方法来完成。

方法一:使用 sapply()

这里 cor() 在数据帧中如上调用,但这次只给它数字列。为了过滤掉数字列,使用 sapply() 在数据框上应用了一个检查数字值的操作。

R 语言中的sapply()函数将列表、向量或数据框作为输入,并以向量或矩阵的形式给出输出。它对列表对象的操作很有用,并返回与原始集合长度相同的列表对象。

例子:



电阻

df<-read.csv("bestsellers.csv")
  
cor(df[sapply(df,is.numeric)])

输出:

方法 2:使用lapply()

同样,lapply 也可以用于过滤掉数值。 lapply()函数R 语言用于在元素列表上应用函数。

选择所需数据后,使用 unlist() 将列表转换为向量,然后将此数据帧传递给 cor() 以生成相关矩阵。

R 语言中的unlist()函数用于将列表转换为向量。它通过保留所有组件简化了生成向量的过程。

例子:

电阻

df<-read.csv("bestsellers.csv")
  
cor(df[, unlist(lapply(df, is.numeric))])

输出: