我在数据框中有变量,我正在尝试构建一个函数,允许我在数据中绘制一个变量,而不是简单地写data$variablename
。
plt=function(x){
plot(data$date,as.name(paste("data$",x,sep="")),type="l",xlab="Population",ylab="Time")
}
R一直认为我的y变量是名称而不是变量。我如何告诉它函数plot
中的y轴输入是名称而不是实际变量?
答案 0 :(得分:2)
我会尝试以下内容(提供两个选项 - 未注释的选项将是我的首选方法):
plt <- function(x, data = mydf) {
x <- deparse(substitute(x))
# with(data, plot(date, get(x), type = "l", xlab = "Population", ylab = "Time"))
plot(data[, "date"], data[, x], type = "l", xlab = "Population", ylab = "Time")
}
使用data[, x]
时,x
需要是一个字符向量,因此在函数的第一行使用deparse(substitute(x))
。因此,您可以不加引号输入y列。我还添加了一个“data
”参数,让您指定要处理的数据集。
尝试使用此功能:
set.seed(1)
mydf <- data.frame(date = 1:100, A = rnorm(100), B = rnorm(100), C = rnorm(100))
plt(A)
plt(B)
plt(C)