maodao 数据如下所示 my_data <- data.frame( ID = paste('2019-',1:10,'-FB'), con = c(rep(c('沙门氏菌','副溶血性弧菌','大肠杆菌'),each = 3),'/') ) 查看数据 my_data 现在要做的是,查找ID为‘2019- 10 -FB’,将该行con的/替换为'沙门氏菌'. 试了recode,replace都不行。
Liechi maodao my_data$con[my_data$ID == "2019- 10 -FB"] <- "沙门氏菌" or dt <- data.table::as.data.table(my_data) dt[ID == "2019- 10 -FB", con := "沙门氏菌"]
maodao 试了许多方法,可行的方法是用which()找到要修改内容的行号再进行修改 which(my_data$ID == '2019- 10 -FB' ) my_data[10,2] <- '大肠杆菌' my_data
daifeng 来一个tidyverse版本 library(tidyverse) my_data_new <- my_data %>% mutate(con = as.character(con)) %>% mutate(con = ifelse(ID == '2019- 10 -FB', '沙门氏菌', con))
songxiao 用replace也可以 library(dplyr) my_data_new <- my_data %>% mutate(con = replace(con,ID == '2019- 10 -FB', '沙门氏菌'))