在有三个输入的R函数中使用ggplot:数据帧的文件名和数字数据的两列变量



我想创建一个以为输入的R函数

  • 我选择的数据帧
  • 包含数字数据的数据帧的两列

输出应该是一列变量与另一列变量的散点图,同时使用基本Rplot函数和ggplot

这是一个玩具数据帧:

df <- data.frame("choco" = 1:5,
"tea" = c(2,4,5,8,10),
"coffee" = c(0.5,2,3,1.5,2.5),
"sugar" = 16:20)

这是我写的函数,它不起作用(也用基本的Rplot尝试过,它不工作-代码没有显示(

test <- function(Data, ing1, ing2)  {
ggplot(Data, aes(x = ing1, y = ing2)) +
geom_point()
}
test(Data = df, ing1 = "choco", ing2 = "tea")

作为上述函数的一部分,我想加入一个"if…"。。else语句,用于测试ing1和ing2输入是否有效,例如:

try(test("coffee", "mint"))
  • 以上输入应提示一条消息,即"一个或两个输入无效"我可以看到使用%in%可能是正确的方法,但我不确定语法
df <- data.frame(
"choco" = 1:5,
"tea" = c(2, 4, 5, 8, 10),
"coffee" = c(0.5, 2, 3, 1.5, 2.5),
"sugar" = 16:20
)
test <- function(Data, ing1, ing2)  {
if (ing1 %in% names(Data)  &  ing2 %in% names(Data)) {
ggplot(Data, aes(x = Data[, ing1], y = Data[, ing2])) +
geom_point()
}
else {
print("Both ing1, and ing2 has to be columns of data frame")
}
}
test(Data = df, ing1 = "choco", ing2 = "sugar")

谨致问候,Grzegorz

最新更新