【发布时间】:2014-07-19 04:46:40
【问题描述】:
假设我有一个向量
dat <- c("A", "B", "C", "B", "A", "E", "E", "F", "D", "D", "A",
"C", "C", "E", "F", "B", "F", "E", "C", "D", "B", "A")
我将如何替换:
- 所有“A”值都变为“D”
- 所有“B”值都变为“E”
- 所有“C”值都变为“F”。
我意识到我可以通过在 R 中使用 match 或 which 函数来实现这一点,但我想在一行中完成所有这些,而且效率也很高。
【问题讨论】:
-
你试过什么?为什么一定要一行?为什么我们要忽略引号的缺失?
-
我不想在每个矢量元素周围写这么多引号。它必须是一行,因为我给出了一个非常简化的实际问题示例。我真正的(也是更复杂的)问题涉及大约 30 次替换。为什么我要写 30 个 which 或 match 语句?看起来很傻。而且我已经尝试了替换功能,特别是尝试将具有必须位于(A,B,C)的元素的向量映射到它将变成(D,E,F)
-
所以我基本上尝试了 replace(dat, c("A", "B", "C"), c("D", "E", "F)),但它没有无法正常工作。
-
提供最小样本很好;但它应该是可运行的。这只是意味着回答问题的人需要花时间引用引号来测试任何可能的解决方案。
-
好吧,我会加引号的。
标签: r