【问题标题】:Error running ggscatter function in R在 R 中运行 ggscatter 函数时出错
【发布时间】:2019-01-08 23:09:09
【问题描述】:

在运行散点图 (ggscatter) 时,系统会抛出此错误:

[.data.frame(data, , x) 中的错误:选择了未定义的列

代码如下:

mydata<-data.frame("eng_score" = 1:99, "53_target_pre_mover_2_0_model" = 1:99)

library("ggpubr")
ggscatter(mydata,y = "eng_score"  , x = "`53_target_pre_mover_2_0_model`",  
      add = "reg.line", conf.int = TRUE, 
      cor.coef = TRUE, cor.method = "pearson",
      xlab = "Likely to move", ylab = "Engagement score")

感谢您的帮助!

【问题讨论】:

标签: r syntax-error scatter-plot


【解决方案1】:

使用时

mydata&lt;-data.frame("eng_score" = 1:99, "53_target_pre_mover_2_0_model" = 1:99)

R 不喜欢以数字开头的列名,所以如果你使用 head(mydata) 你会看到名字

53_target_pre_mover_2_0_model

改成

X53_target_pre_mover_2_0_model

1) 你可以在散点图中改变它:

mydata<-data.frame("eng_score" = 1:99, "53_target_pre_mover_2_0_model" = 1:99)


library(ggpubr)
ggscatter(mydata,y = "eng_score"  , x = "X53_target_pre_mover_2_0_model",  
         add = "reg.line", conf.int = TRUE, 
         cor.coef = TRUE, cor.method = "pearson",
         xlab = "Likely to move", ylab = "Engagement score")

2) 你停止在 colnames 中生成 X

您可以更改 data.frame 函数,而不是使用参数 check.names=F 检查列名中的数字:

mydata&lt;-data.frame("eng_score" = 1:99, "53_target_pre_mover_2_0_model" = 1:99, check.names=F)

【讨论】:

  • 非常感谢 mischva 的检查。我尝试了这两种方法,但同样的错误仍然存​​在。此外,如果我尝试 head (mydata),我看不到 X 与列名合并。我知道将数字作为变量名的第一个字符会产生此问题,但是由于我现在无法更改列的名称,因此我们可以有另一种解决方法吗?再次感谢您的帮助!
  • @AdityaDev 这很奇怪,因为你应该从data.frame("eng_score" = 1:99, "53_target_pre_mover_2_0_model" = 1:99) 得到x。不过,您可以尝试通过添加 check.names=T 来引发这种行为。 R 这样做是为了“保护”您免受基于数字起始变量的错误的影响。目前,如果您保持 col 名称不变,我不知道一个可行的解决方案。该错误是基于未能调用该列,所以也许你找到了另一个解决方案,对不起,我不能帮助你
猜你喜欢
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 2020-12-31
相关资源
最近更新 更多