Найти ссылку на ячейку для значения в кадре данных R - PullRequest
1 голос
/ 29 октября 2019

Я пытаюсь найти способ поиска по фрейму данных, чтобы получить ссылку на столбец и строку для нескольких условий.

#some data 
SalesData<-data.frame(Appliance=c("Radio", "Laptop", "TV", "Fridge"), ThisYear=c(5,25,5,8), LastYear=c(6,20,5,8))

 #code to find which row column TV is in which correctly gives row 3, col 1
 TVRef<-which(SalesData==("TV"), arr.ind=TRUE)

В фрейме данных SalesData я хотел бы найти фрейм данных (строка,колонка) ссылка, где Appliance = TV и где LastYear = 5.

Я знаю, как искать один элемент в R согласно приведенному выше коду, но я не знаю, как это сделать для нескольких элементов. В этом примере я хотел бы вернуть строку результатов 3, столбец 3, чтобы затем использовать ее в дальнейшем коде для обновления кадра данных.

Кто-нибудь может что-нибудь предложить?

Ответы [ 2 ]

3 голосов
/ 29 октября 2019

Вы можете использовать логический and (&) и передать несколько условий в селектор строк следующим образом:

SalesData[c(SalesData$Appliance=="TV" & SalesData$LastYear==5),][[3]]
#[1] 5

Альтернативный вариант использования with может быть выполнен следующим образом:

with(SalesData, SalesData[Appliance=="TV" & LastYear==5,][[3]])
#[1] 5

Это числовой вывод, который вы можете сделать

SalesData[c(SalesData$Appliance=="TV" & SalesData$LastYear==5),][[3]] <- 500
# To replace it with say 500. 
2 голосов
/ 29 октября 2019

Мне нравится использовать функции dplyr, которые довольно легко читают

SalesData<-data.frame(Appliance=c("Radio", "Laptop", "TV", "Fridge"), ThisYear=c(5,25,5,8), LastYear=c(6,20,5,8))


library(dplyr)


SalesData %>% 
  filter(Appliance == "TV" & LastYear == 5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...