首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个“char数组与char数组的索引”是如何工作的?

这个“char数组与char数组的索引”是如何工作的?
EN

Stack Overflow用户
提问于 2016-03-16 12:46:30
回答 1查看 39关注 0票数 1

我正在使用R的条形图阅读这篇文章是关于“华尔街日报”的饼形图的修复。。在最初的文章中有完整的代码,所以我不会在这里重复。我对此感到困惑:

代码语言:javascript
复制
dat$amount <- factor(amount_trans[dat$amount], levels=amount_trans)

特别是amount_trans[dat$amount]。我理解总体目标是用"\n“替换原来的标签,以获得更好的格式,以及修复顺序的级别。但我不知道这是如何做到的。dat$amount是char数组,amount_trans也是char数组。字符数组的索引与char数组?

代码语言:javascript
复制
> 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")

上面的行确实按预期工作,这会改变标签的意图。

然而,下一次使用它(类似的想法-我仍然不知道为什么)--只是不起作用:

代码语言:javascript
复制
dat$Task <-factor(title_trans[dat$Task], levels=title_trans)

无论出于什么原因,它返回一些NA,下面是我尝试过的:

代码语言:javascript
复制
> 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的出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 13:07:48

字符数组的索引与char数组?

不,用名称向量索引命名字符向量(非数组):

代码语言:javascript
复制
values = c(a = 1, b = 2, c = 3)
values['a'] # 1
values[c('b', 'c')] # 2, 3

这就是这里发生的一切。我不知道为什么代码的原始作者将向量名称放在引号中,但这并不是必要的,而且实际上很奇怪:

代码语言:javascript
复制
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")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36036111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档