如果在单独的列中满足条件,则重命名因子变量
Renaming factor variables if a condition is satisfied in separate column
我有一个看起来像这样的 df:
df <- data.frame(
A = sample(c("Dog", "Cat", "Cat", "Dog", "Fish", "Fish")),
B = sample(c("Brown", "Black", "Brown", "Black", "Brown", "Black")))
df
A B
1 Dog Brown
2 Cat Black
3 Cat Brown
4 Dog Black
5 Fish Brown
6 Fish Black
每当第二列中满足条件 "Brown" 时,我想重命名(最好使用 dplyr)因子变量 "Fish" 为 "Dog"。
A B
1 Dog Brown
2 Cat Black
3 Cat Brown
4 Dog Black
5 Dog Brown #rename here
6 Fish Black
您可以使用 replace
:
df %>% mutate(A = replace(A, which(A == "Fish" & B == "Brown"), "Dog"))
# A B
#1 Cat Black
#2 Fish Black
#3 Dog Black
#4 Dog Brown
#5 Cat Brown
#6 Dog Brown
这是一个 data.table 版本:
library(data.table)
setDT(df)[A == "Fish" & B == "Brown", A := "Dog"]
我有一个看起来像这样的 df:
df <- data.frame(
A = sample(c("Dog", "Cat", "Cat", "Dog", "Fish", "Fish")),
B = sample(c("Brown", "Black", "Brown", "Black", "Brown", "Black")))
df
A B
1 Dog Brown
2 Cat Black
3 Cat Brown
4 Dog Black
5 Fish Brown
6 Fish Black
每当第二列中满足条件 "Brown" 时,我想重命名(最好使用 dplyr)因子变量 "Fish" 为 "Dog"。
A B
1 Dog Brown
2 Cat Black
3 Cat Brown
4 Dog Black
5 Dog Brown #rename here
6 Fish Black
您可以使用 replace
:
df %>% mutate(A = replace(A, which(A == "Fish" & B == "Brown"), "Dog"))
# A B
#1 Cat Black
#2 Fish Black
#3 Dog Black
#4 Dog Brown
#5 Cat Brown
#6 Dog Brown
这是一个 data.table 版本:
library(data.table)
setDT(df)[A == "Fish" & B == "Brown", A := "Dog"]