用数字R替换列中的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用数字R替换列中的字符相关的知识,希望对你有一定的参考价值。

我有一个矩阵,最后一列包含字符:

A
B
B
A
...

我想将A替换为A,将B替换为B.预期结果应为:

1
2
2
1
...
答案

如果你100%自信只出现"A""B"

sample_data = c("A", "B", "B", "A")
sample_data
# [1] "A" "B" "B" "A"
as.numeric(gsub("A", 1, gsub("B", 2, sample_data)))
# [1] 1 2 2 1
另一答案

使用factor或简单的查找表会更灵活:

sample_data = c("A", "B", "B", "A")

推荐的:

as.numeric(factor(sample_data))
# [1] 1 2 2 1

可能的选择:

as.numeric(c("A" = "1", "B" = "2")[sample_data])
# [1] 1 2 2 1

以上是关于用数字R替换列中的字符的主要内容,如果未能解决你的问题,请参考以下文章

替换数据框R列中的字符

使用R函数将数据框列中的字符串替换为“”

python pandas用数字替换数据框中的字符串

用唯一的随机字符串替换列中的字符串

用片段替换某些东西

R:如何计算列中用逗号分隔的所有字符值?