我制作了以下数据框df
:
V1 <- 1:10
V2 <- 11:20
V3 <- 21:30
V4 <- 31:40
df <- data.frame(V1,V2,V3,V4)
我还创建了一个函数,它应该根据参数var1
和var2
创建一个简单的散点图。
ScatterPlot <- function(var1, var2) {
ggplot(data = df,
aes(x = var1, y = var2)),
environment = environment() +
geom_point()
}
我只想为以下变量组合使用2个特定的散点图:v1-v2
和v3-v4
。
我认为mapply
会派上用场,循环使用不同的变量组合。
mapply(FUN = ScatterPlot,
var1 = c(V1, V3),
var2 = c(V2, V4))
我只想到2个情节,但这就是我所得到的:
答案 0 :(得分:2)
我认为问题来自于函数正在df中查找名为&#34; var1&#34;的变量。我不知道ggplots足以绕过这个问题,但是,对于基础R图,你可以这样做:
baseplot <- function(var1, var2){
plot(df[,var1], df[,var2], pch=19)
}
par(mfrow=c(1, 2))
mapply(baseplot, c("V1", "V3"), c("V2", "V4"))
修改强>
使用ggplot
并放置参数environment=environment()
,添加print
并使用变量名称(引号之间)似乎有效:
ScatterPlot <- function(var1, var2) {
print(ggplot(data = df,
aes(x = df[,var1], y = df[,var2]),
environment = environment()) +
geom_point())
}
mapply(ScatterPlot, var1=c("V1", "V3"), var2=c("V2", "V4"))