首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用重新编码向数据框添加列

使用重新编码向数据框添加列
EN

Stack Overflow用户
提问于 2016-07-28 00:14:54
回答 2查看 222关注 0票数 1

我正在学习dplyr上的一个DataCamp类。他们让我加载'hflights‘数据,然后让我创建一个名为'Carrier’的新列,用每个航空公司代码的实际名称替换它们。解决方案如下所示:

代码语言:javascript
复制
    hflights <- tbl_df(hflights)

    names <- c("AA" = "American", "AS" = "Alaska", "B6" = "JetBlue", "CO" = "Continental",
             "DL" = "Delta", "OO" = "SkyWest", "UA" = "United", "US" = "US_Airways",
             "WN" = "Southwest", "EV" = "Atlantic_Southeast", "F9" = "Frontier",
             "FL" = "AirTran", "MQ" = "American_Eagle", "XE" = "ExpressJet", "YV" = "Mesa")

    hflights["Carrier"] <- names[hflights$UniqueCarrier]

我想出了如何做到这一点,这是有效的,但我并不是真正清楚R在这里做什么。我知道我正在向hflights数据帧添加一个新列,但我不清楚R是如何(或为什么)用运营商代码替换运营商名称的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-28 01:10:55

这是一个查询表,其中使用命名向量的名称来返回该向量中的值。举几个例子:

提醒一下,可以通过引用索引或名称来设置命名向量的子集:

代码语言:javascript
复制
names[1:2]
        AA         AS 
"American"   "Alaska" 
names[c("AA", "AS")]
        AA         AS 
"American"   "Alaska" 

一个很好的特性是,可以重复这些引用来生成扩展向量:

代码语言:javascript
复制
names[rep(1:2, 2)]
        AA         AS         AA         AS 
"American"   "Alaska" "American"   "Alaska"
names[rep(c("AA", "AS"), 2)]
        AA         AS         AA         AS 
"American"   "Alaska" "American"   "Alaska"

使用这种方法,可以使用包含查找表的索引或查找表的名称的向量来产生具有相同长度但具有所需值的向量。

票数 3
EN

Stack Overflow用户

发布于 2016-07-28 00:56:16

namescharacterstring类型的命名向量。这类似于Python字典,其中每个string索引一个变量。在本例中,您通过运营商代码进行索引,值为全名。

R中,当你索引一个向量时,你可以用一个列表来完成。在本例中,您使用缩写代码对“字典”进行索引,并返回一个与其值匹配的索引长度列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38618285

复制
相关文章

相似问题

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