创建treemap时遇无效列名错误,请求排查R代码问题
排查treemap代码中的无效列名问题
我帮你梳理下代码里的几个关键细微错误,这些正是导致你收到无效列名报错的原因:
路径转义错误:Windows系统下的路径反斜杠
\在R里属于转义字符,直接使用会导致路径解析失败,进而无法正确读取CSV文件,后续的列自然也无法被识别。你需要把路径改成以下两种形式之一:mydata = read.csv("C:/path/to/files/top_10.csv") # 使用正斜杠替代反斜杠 # 或者 mydata = read.csv("C:\\path\\to\\files\\top_10.csv") # 用双反斜杠完成转义index参数传值错误:treemap的index参数需要传入数据框中分类变量的列名字符串,而不是列的唯一值向量。你现在传入的products是mydata$product的唯一值集合,这会让函数误以为你要找名为这些值的列,自然会报无效列名。正确的写法应该是直接指定列名:index = "product" # 直接用列名字符串,treemap会自动处理该列的唯一分类,无需手动去重vSize参数缺少引号:如果reportable_amount是你的数据框中的列名,需要把它放在引号里,否则R会把它当成一个独立变量来查找,而不是数据框中的列:vSize = "reportable_amount"
修正后的完整代码示例如下:
library(treemap) mydata = read.csv("C:/path/to/files/top_10.csv") treemap(mydata, index = "product", vSize = "reportable_amount", type = "index", palette = "Reds" # 可以补充你之前截断的参数,比如标题、标签显示设置等 )
你可以按上面的修改试试,应该就能解决无效列名的问题了。
内容的提问来源于stack exchange,提问作者ASH
相关产品推荐
相关产品推荐

