我想使用 Python 中类似字典的对象将一个字符串映射到 R 中的另一个字符串。例如,在 Python 中,您可以定义一个字典来将一个字符串转换为另一个字符串,例如:
d = {"s": "Superlative", "d": "Dynamic", "f": "Furious"}
pd.apply(lambda x: d[x["map_column"]], axis=1)
Run Code Online (Sandbox Code Playgroud)
但是,在 R 中,如果您想基于此类映射将一列中的一组字符串转换为另一列,您最终会定义一个需要大量 的函数if else,例如:
mapper <- function(x) {
if (x = "s") {
return ("Superlative")
} else if (x = "d") {
return ("Dynamic")
}...
return("")
}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢定义这么长很长的函数。那么是否可以定义一个字典,或者更具体地说,在 R 中用更少的一行(或两行)代码获得结果?
如果您已经在使用tidyverse,那么这就是recodein 的用途dplyr。
df %>%
mutate(LongName = recode(ShortName,
s = "Superlative",
d = "Dynamic",
f = "Furious",
`multiple words` = "Use backticks to escape"
)
) ->
df
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2914 次 |
| 最近记录: |