有没有办法动态构建 x 轴变量
Is there a way to dynamically build the x axis variables
设置日期框
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, data=df)
使用
创建第二个更复杂的条形图
barchart(YData ~ XData1+XData2+XData3, data=df, stack=TRUE)
现在的问题是,如何使用函数创建条形图。
通过调用如下函数创建第一个图表:
CreateBarChart(df, c('XData1'), c('YData'))
第二个图表通过调用这样的函数:
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
我在创建条形图的函数中做了什么?那是我不明白的。我需要在变量中动态构建 XData1+XData2+XData3
字符串并在条形图中使用它。
原始问题
我有一组数据,其中包含要包含在图表中的不同数量的列。简单的情况下,命令如下所示:
barchart(my_data[, ycol] ~ my_data[, xcol])
在更复杂的情况下,命令如下所示:
barchart(my_data[, ycol] ~ my_data[, xcol][[1]]+my_data[, xcol][[2]]+my_data[, xcol][[3]])
问题是 xcol 变量的数量可能会有所不同。
我想根据 length(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(df,'YData',c('XData1','XData2'))
设置日期框
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, data=df)
使用
创建第二个更复杂的条形图barchart(YData ~ XData1+XData2+XData3, data=df, stack=TRUE)
现在的问题是,如何使用函数创建条形图。
通过调用如下函数创建第一个图表:
CreateBarChart(df, c('XData1'), c('YData'))
第二个图表通过调用这样的函数:
CreateBarChart(df, c('XData1','XData2','XData3'), c('YData'))
我在创建条形图的函数中做了什么?那是我不明白的。我需要在变量中动态构建 XData1+XData2+XData3
字符串并在条形图中使用它。
原始问题
我有一组数据,其中包含要包含在图表中的不同数量的列。简单的情况下,命令如下所示:
barchart(my_data[, ycol] ~ my_data[, xcol])
在更复杂的情况下,命令如下所示:
barchart(my_data[, ycol] ~ my_data[, xcol][[1]]+my_data[, xcol][[2]]+my_data[, xcol][[3]])
问题是 xcol 变量的数量可能会有所不同。
我想根据 length(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(df,'YData',c('XData1','XData2'))