我一直在尝试编写一个R函数,可以通过数字替换特定列中的字符串。以下是我的示例:
d <- data.frame(A = c("D",1,2,3,"D",1,2,"B","D",3,5),
B = c(7,8,9,4,5,8,9,1,6,7,8))
func <- function(dat,rep_val_col,rep_val_col_change,new_val)
{
dat[dat[,rep_val_col] == rep_val_col_change[1],],rep_val_col] = new_val[1]
dat[dat[,rep_val_col] == rep_val_col_change[2],],rep_val_col] = new_val[2]
}
func(d,"A",c("D","B"),new_val = c(9,10))
我希望将A列中的"D"替换为9,将"B"替换为10。
code
func <- function(dat,rep_val_col,rep_val_col_change,new_val) { levels(dat[,rep_val_col])[levels(dat[,rep_val_col]) %in% rep_val_col_change] <- new_val dat[,rep_val_col] <- as.numeric(as.character(dat[,rep_val_col])) return(dat) }func(d,"A",c("D","B"),new_val = c(9,10))code
- Sana Ali