У меня есть набор данных, в котором я хочу посмотреть, есть ли одно или несколько слов в списке в нескольких столбцах.
zoo <- matrix (c("zoo1", "bee", "honeybee", "alligator", "tiger", 0,
"zoo2", "tiger", "honeybee", "lion", 0, 0,
"zoo3", "alligator", "alligator", "alligator",
"bee", "wasp", "zoo4", "wasp", "honeybee", 0, 0, 0,
"zoo5", "alligator", "lion", "tiger", "bear", 0),
nrow = 5, ncol = 6, byrow = TRUE)
colnames(zoo) <- c("zoo", "A", "B", "C","D","E")
zoo <- data.frame(zoo)
Я хотел бы создать новый столбец, который идентифицирует каждую строку, содержащую ошибку (пчела, пчела или оса).Вот что я попробовал:
#create list of values that would return "TRUE" in the new column
bug <- c("bee", "wasp", "honeybee")
#create list of columns to be included in the search for the list of desired values
animal <- c("A", "B", "C", "D", "E")
#create a new column called "bug" that lists any row with one of the desired values as "TRUE"
zoo$bug <- (rowSums(zoo[,animal] == bug) >0)
Это сработало только частично.Zoo1, Zoo3, zoo4 и zoo5 верны, но zoo2 (строка 2) выглядит как «ЛОЖЬ», когда он должен быть «ИСТИНА».Я не могу понять, почему это так.
Любые предложения будут очень признательны, спасибо!