Кажется, это простой вопрос, и, возможно, это так, но я не могу найти легкое решение (оно также может быть дубликатом, но я ничего не могу найти).
Предположим, у меня есть строковый массив:
objects = c("apple","banana","cranberry");
и я хотел бы извлечь положение каждого объекта из столбца fruit , чтобы получить значения, содержащиеся в других столбцах кадра данных.
df = data.frame(fruits=c("banana","watermelon","orange","pineapple","apple","strawberry","pear","lemon","grapefruit","peach","apricot","cranberry"),asia=c(1,3,2,1,3,1,2,3,1,2,2,1),america=c(1,2,3,2,3,1,3,2,2,1,3,2));
Есть ли что-то похожее на which () или grep (), которое можно использовать для получения позиций без необходимости использовать цикл for, например:
position = matrix(nrow=length(objects),ncol=2);
i = 1;
for(obj in objects){
position[i,] = unlist(df[which(df$fruit==obj),-1]);
i = i + 1;
}