数据如下所示
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都不行。
数据如下所示
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都不行。
试了许多方法,可行的方法是用which()找到要修改内容的行号再进行修改
which(my_data$ID == '2019- 10 -FB' )
my_data[10,2] <- '大肠杆菌'
my_data
来一个tidyverse版本
library(tidyverse)
my_data_new <- my_data %>%
mutate(con = as.character(con)) %>%
mutate(con = ifelse(ID == '2019- 10 -FB', '沙门氏菌', con))
多谢各位大神。
这道题跟 <https://d.cosx.org/d/420762> 是相同的。
用replace
也可以
library(dplyr)
my_data_new <- my_data %>%
mutate(con = replace(con,ID == '2019- 10 -FB', '沙门氏菌'))