如何从df中删除“字符”列,如何将“逻辑”列更改为数字(分别为1和0),尽管单元格为空但仍运行cor,单元格中为“ N / A”

时间:2019-06-26 14:01:04

标签: r correlation

提供的链接不能解决问题。这是我编辑过的问题:

有数百列,我需要运行cor几列。

1)我必须在运行cor之前从df中删除“字符”列。

2)我还必须将“逻辑”列转换为“数字”。这些“逻辑”列的格式已经为1或0。

3)每行中都有其他潜在问题:(A)空白单元格,(B)说“ N / A”的单元格

4):基本上,希望运行cor并尝试消除障碍。

sapply(dfcor,class)
cor(dfcor, use = "complete.obs")

错误消息:

  

cor(dfcor,use =“ complete.obs”)错误:'x'必须为数字

1 个答案:

答案 0 :(得分:1)

我们通过检查类是否为character来创建逻辑向量,通过否定(!来删除这些列,并在这些列的子集上获取cor

i1 <- sapply(dfcor, is.character)
cor(dfcor[!i1], use = "complete.obs")

与帖子有关的主要问题是发生错误的原因。这是由于?cor期望根据?cor

的数字列/矩阵/data.frame
  

x-数字矢量,矩阵或数据框。