仅计算 R 中数字列的相关矩阵
相关矩阵是数据帧的数字属性之间关系的表格表示。表中的值是属性之间的相关系数。
使用的数据集:畅销书
创建相关矩阵 cor()函数以数据帧作为参数调用。
Syntax: cor(dataframe)
例子:
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()函数将列表、向量或数据框作为输入,并以向量或矩阵的形式给出输出。它对列表对象的操作很有用,并返回与原始集合长度相同的列表对象。
Syntax: sapply(X, FUN)
Parameters:
- X: A vector or an object
- FUN: Function applied to each element of x
例子:
电阻
df<-read.csv("bestsellers.csv")
cor(df[sapply(df,is.numeric)])
输出:
方法 2:使用lapply()
同样,lapply 也可以用于过滤掉数值。 lapply()函数R 语言用于在元素列表上应用函数。
Syntax: lapply(list, func)
Parameters:
- list: list of elements
- func: operation to be applied
选择所需数据后,使用 unlist() 将列表转换为向量,然后将此数据帧传递给 cor() 以生成相关矩阵。
R 语言中的unlist()函数用于将列表转换为向量。它通过保留所有组件简化了生成向量的过程。
Syntax: unlist(list)
Parameters:
list: It is a list or Vector
use.name: Boolean value to prserve or not the position names
例子:
电阻
df<-read.csv("bestsellers.csv")
cor(df[, unlist(lapply(df, is.numeric))])
输出: