如何在现有列 R 中添加数字
How to add numbers in existing column R
我想在 R 中问您以下问题:我有一个列:Letter= A, B, C, B, B, A 我想要一个新列,它看起来像这样:Letter = A4、B2、C1、B2、B2、A4。所以每次都是A,我最后加4,B加2,C加1。
提前致谢!
埃莱尼
创建一个 key/value 命名向量,并使用它来匹配和替换基于 'Letter' 列的值,paste
输出 'Letter' 列
mapping_vec <- setNames(c(4, 2, 1), c("A", "B", "C"))
df1$newCol <- with(df1, paste0(Letter, mapping_vec[Letter]))
df1$newCol
#[1] "A4" "B2" "C1" "B2" "B2" "A4"
数据
df1 <- structure(list(Letter = c("A", "B", "C", "B", "B", "A")),
class = "data.frame", row.names = c(NA,
-6L))
选项match
transform(
df,
NewCol = paste0(Letter, c(4, 2, 1)[match(Letter, c("A", "B", "C"))])
)
给予
Letter NewCol
1 A A4
2 B B2
3 C C1
4 B B2
5 B B2
6 A A4
数据
df <- data.frame(Letter = c("A", "B", "C", "B", "B", "A"))
我想在 R 中问您以下问题:我有一个列:Letter= A, B, C, B, B, A 我想要一个新列,它看起来像这样:Letter = A4、B2、C1、B2、B2、A4。所以每次都是A,我最后加4,B加2,C加1。
提前致谢! 埃莱尼
创建一个 key/value 命名向量,并使用它来匹配和替换基于 'Letter' 列的值,paste
输出 'Letter' 列
mapping_vec <- setNames(c(4, 2, 1), c("A", "B", "C"))
df1$newCol <- with(df1, paste0(Letter, mapping_vec[Letter]))
df1$newCol
#[1] "A4" "B2" "C1" "B2" "B2" "A4"
数据
df1 <- structure(list(Letter = c("A", "B", "C", "B", "B", "A")),
class = "data.frame", row.names = c(NA,
-6L))
选项match
transform(
df,
NewCol = paste0(Letter, c(4, 2, 1)[match(Letter, c("A", "B", "C"))])
)
给予
Letter NewCol
1 A A4
2 B B2
3 C C1
4 B B2
5 B B2
6 A A4
数据
df <- data.frame(Letter = c("A", "B", "C", "B", "B", "A"))