【发布时间】:2021-09-11 23:59:47
【问题描述】:
我有一些格式很差的数据;键列默认为字符,因为它具有符号(例如 ? 和 -)、字母和数字值。有大约 20 个唯一值。我想将该列中的所有内容映射到一个新列,该列是 SI base 10 幂的集合。我已经尝试使用 dplyr recode() 函数执行此操作,但没有成功。这是我拥有的数据的一个示例:
df <- data.frame(Type = letters[1:5], Value = c(5.2, 7, 42.5,
1, 0.3), Exp = c("m", "k", "b", "6", "?"))
structure(list(Type = c("a", "b", "c", "d", "e"),
Value = c(5.2, 7, 42.5, 1, 0.3), Exp = c("m", "k", "b",
"6", "?")), class = "data.frame", row.names = c(NA, -5L))
exp 变量是一团糟——我想我需要能够将m 映射到10^6(用于“百万”),k 到10^3(用于“千”),等等。plyr 中的mapvalues() 函数可以工作,但dplyr 和plyr 之间的冲突太多,我无法同时加载。
【问题讨论】:
-
请用
dput显示几行数据进行测试。塔恩克斯 -
欢迎来到 SO!您能否使用
dput向我们提供样本,以便我们理解您的意思:我不明白如何将具有符号的变量更改为 SI 值