我正在学习dplyr上的一个DataCamp类。他们让我加载'hflights‘数据,然后让我创建一个名为'Carrier’的新列,用每个航空公司代码的实际名称替换它们。解决方案如下所示:
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是如何(或为什么)用运营商代码替换运营商名称的。
发布于 2016-07-28 01:10:55
这是一个查询表,其中使用命名向量的名称来返回该向量中的值。举几个例子:
提醒一下,可以通过引用索引或名称来设置命名向量的子集:
names[1:2]
AA AS
"American" "Alaska"
names[c("AA", "AS")]
AA AS
"American" "Alaska" 一个很好的特性是,可以重复这些引用来生成扩展向量:
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"使用这种方法,可以使用包含查找表的索引或查找表的名称的向量来产生具有相同长度但具有所需值的向量。
发布于 2016-07-28 00:56:16
names是character或string类型的命名向量。这类似于Python字典,其中每个string索引一个变量。在本例中,您通过运营商代码进行索引,值为全名。
在R中,当你索引一个向量时,你可以用一个列表来完成。在本例中,您使用缩写代码对“字典”进行索引,并返回一个与其值匹配的索引长度列表。
https://stackoverflow.com/questions/38618285
复制相似问题