R语言中用变量调用数据框列名绘条形图报错,求批量实现方案
问题解决:数据框中用变量引用列名生成条形图
你的错误根源在于hd$test的写法——R会把它当成直接查找名为"test"的列,而不是你定义的变量test对应的列名(也就是"test_column2"),找不到有效数据才会抛出那个警告转成的错误。
要实现用变量指定列名的需求,你需要用[[ ]]代替$,因为[[支持传入字符串变量来引用列。以下是修正后的代码:
单个列的修正代码
hd <- read.csv("mydata.csv") # 读取数据 x <- c("test_column1","test_column2") # 列名字符向量 test <- x[2] # 获取第二个列名"test_column2"(注:head(x,2)返回前2个元素,若要单个元素用x[2]) # 用[[变量]]引用列 barplot(100*prop.table(table(hd[[test]])))
批量生成条形图的循环写法
如果要遍历所有目标列批量生成图,可以这样写:
hd <- read.csv("mydata.csv") x <- c("test_column1","test_column2") for(col_name in x) { # 每个列生成对应的条形图,添加标题区分不同列 barplot(100*prop.table(table(hd[[col_name]])), main = paste("比例条形图:", col_name)) }
内容的提问来源于stack exchange,提问作者R-Student
相关产品推荐
相关产品推荐

