在R中:在函数内部的for循环中使用ggplot2创建散点图,不同的连续/离散变量

时间:2017-04-06 13:22:12

标签: r function for-loop ggplot2 continuous

我想用 for-loop 创建一个函数,这样我的数据框的每个变量都会针对变量 main_variable绘制(散点图)(使用 ggplot2

数据框:

       main_variable          a   b    c   d
1              7  42.857143 210  510 120
2              3 115.714286 180  810 450
3              5  21.428571 120  270  NA
4              5  17.142857 540  660  NA
5              2  20.000000  NA  100  40
6              2  21.428571  60   60 150
7              0   5.714286  NA   NA 190
8              2   8.571429 120  180  NA
9              4  17.857143 810  935  60
10             3  21.428571 900 1050  NA

到目前为止我提出的功能是:

scatter <-  function(df) {
  for(i in 2:ncol(df)){
    col <- names(df)[i]
    na.omit(col)
    as.character(quote(col))
    scp <- ggplot(df, aes(x = main_variable, y = col)) + 
           geom_jitter(size = 0.25, height = 0.25) + 
           scale_x_continuous(limits = c(0, 7)) + 
           scale_y_discrete(limits = c(0, max(df[, col]))) + 
           geom_smooth(method = "lm", colour = "Red")
    plot(scp)
    }
}
scatter(dataframe)

但随后出现错误消息:

Error: Discrete value supplied to continuous scale

main_variable的值只能取8个值中的一个:0,1,2,3,4,5,6或7。 所有其他变量的值可以在0到5000之间。

然而,正在运行

dataframe[1:ncol(dataframe)] <- as.numeric(unlist(dataframe[1:ncol(dataframe)]))

无法解决问题。 (我使用1:ncol(数据帧)因为我不想转换并使用我的真实数据帧的所有变量。)

有谁知道如何解决这个问题?

谢谢。

0 个答案:

没有答案