用数字R替换列中的字符

问题描述 投票:-4回答:2

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

A
B
B
A
...

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

1
2
2
1
...
r replace label
2个回答
2
投票

如果你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

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
© www.soinside.com 2019 - 2024. All rights reserved.