我正在使用R的条形图阅读这篇文章是关于“华尔街日报”的饼形图的修复。。在最初的文章中有完整的代码,所以我不会在这里重复。我对此感到困惑:
dat$amount <- factor(amount_trans[dat$amount], levels=amount_trans)特别是amount_trans[dat$amount]。我理解总体目标是用"\n“替换原来的标签,以获得更好的格式,以及修复顺序的级别。但我不知道这是如何做到的。dat$amount是char数组,amount_trans也是char数组。字符数组的索引与char数组?
> dat$amount[1:2]
[1] "less_than_one_hour_per_week" "less_than_one_hour_per_week"
amount_trans <- c("less_than_one_hour_per_week"="<1 hr/\nwk",
"one_to_four_hours_per_week"="1-4 hrs/\nwk",
"one_to_three_hours_a_day"="1-3 hrs/\nday",
"four_or_more_hours_a_day"="4+ hrs/\nday")上面的行确实按预期工作,这会改变标签的意图。
然而,下一次使用它(类似的想法-我仍然不知道为什么)--只是不起作用:
dat$Task <-factor(title_trans[dat$Task], levels=title_trans)无论出于什么原因,它返回一些NA,下面是我尝试过的:
> title_trans <- c("Basic exploratory data analysis"="Basic exploratory\ndata analysis",
+ "Data cleaning"="Data\ncleaning",
+ "Machine learning, statistics"="Machine learning,\nstatistics",
+ "Creating visualizations"="Creating\nvisualizations",
+ "Presenting analysis"="Presenting\nanalysis",
+ "Extract, transform, load"="Extract,\ntransform, load")
> head(dat$Task)
[1] " Basic exploratory data analysis" " Data cleaning" " Machine learning, statistics"
[4] " Creating visualizations" " Presenting analysis" " Extract, transform, load"
> dat$Task <-factor(title_trans[dat$Task], levels=title_trans)
> head(dat$Task)
[1] <NA> <NA> <NA> <NA> <NA> <NA>
Levels: Basic exploratory\ndata analysis Data\ncleaning Machine learning,\nstatistics Creating\nvisualizations Presenting\nanalysis Extract,\ntransform, load这里的N/A值令人费解。这也使得最终的情节不完全一样,在屏幕截图中演示。
更新:现在我意识到,数据中的额外空白导致了NA的出现。
发布于 2016-03-16 13:07:48
字符数组的索引与char数组?
不,用名称向量索引命名字符向量(非数组):
values = c(a = 1, b = 2, c = 3)
values['a'] # 1
values[c('b', 'c')] # 2, 3这就是这里发生的一切。我不知道为什么代码的原始作者将向量名称放在引号中,但这并不是必要的,而且实际上很奇怪:
amount_trans <- c(less_than_one_hour_per_week = "<1 hr/\nwk",
one_to_four_hours_per_week = "1-4 hrs/\nwk",
one_to_three_hours_a_day = "1-3 hrs/\nday",
four_or_more_hours_a_day = "4+ hrs/\nday")https://stackoverflow.com/questions/36036111
复制相似问题