R 是否有一种动态构建x轴变量的方法

R 是否有一种动态构建x轴变量的方法,r,bar-chart,lattice,R,Bar Chart,Lattice,设置日期框 a <- c(5, 10, 15, 20) b <- c(50, 100, 150, 200) c <- c(150, 200, 250, 300) d <- c("A", "B", "C", "D") df <- data.frame(a, b, c, d) names(df) <- c("XData1", "XData2", "XData3", "YData") df XData1 XData2 XData3 YData 1

设置日期框

 a <- c(5, 10, 15, 20)
 b <- c(50, 100, 150, 200)
 c <- c(150, 200, 250, 300)
 d <- c("A", "B", "C", "D")
 df <- data.frame(a, b, c, d)
 names(df) <- c("XData1", "XData2", "XData3", "YData")
 df
  XData1 XData2 XData3 YData
1      5     50    150     A
2     10    100    200     B
3     15    150    250     C
4     20    200    300     D
使用创建第二个更复杂的条形图

barchart(YData ~ XData1+XData2+XData3, data=df, stack=TRUE)
现在的问题是,如何使用函数创建条形图

通过调用如下函数创建第一个图表:

CreateBarChart(df, c('XData1'), c('YData')) 
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
第二个图表是调用如下函数:

CreateBarChart(df, c('XData1'), c('YData')) 
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
我在函数中如何创建条形图?这就是我不明白的。我需要在变量中动态构建
XData1+XData2+XData3
字符串,并在条形图中使用它

原始问题

我有一组数据,其中包括不同数量的列,以包括在图形中。在简单的情况下,命令如下所示:

CreateBarChart(df, c('XData1'), c('YData')) 
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
barchart(my_data[,ycol]~my_data[,xcol])

在更复杂的情况下,命令如下所示:

CreateBarChart(df, c('XData1'), c('YData')) 
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
barchart(my_data[,ycol]~my_data[,xcol][[1]]+my_data[,xcol][[2]]+my_data[,xcol][[3]])

问题是xcol变量的数量可能会有所不同

我想根据
长度(xcol)
动态构建命令的
my_data[,xcol][[1]]+my_data[,xcol][[2]]+my_data[,xcol][[3]]
部分


任何帮助都将不胜感激

构建字符串并将其转换为公式。然后,条形图可以获取该数据和数据:

CreateBarChart=function(Data,YVAR,XVAR){
FORMULA = as.formula(paste(YVAR,"~",paste(XVAR,collapse="+")))
barchart(FORMULA,data=Data)
} 
我们测试:

CreateBarChart(df,'YData','XData1')


构建字符串并将其转换为公式。然后,条形图可以获取该数据和数据:

CreateBarChart=function(Data,YVAR,XVAR){
FORMULA = as.formula(paste(YVAR,"~",paste(XVAR,collapse="+")))
barchart(FORMULA,data=Data)
} 
我们测试:

CreateBarChart(df,'YData','XData1')


如果您包含一个简单的示例输入和所需输出,可用于测试和验证可能的解决方案,则更容易帮助您。如果您包含一个简单的示例输入和所需输出,可用于测试和验证可能的解决方案,则更容易帮助您。