查找R数据帧中某个值的单元格引用

查找R数据帧中某个值的单元格引用,r,R,我试图找到一种在数据框内搜索的方法,以返回多个条件的列和行引用 #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<-w

我试图找到一种在数据框内搜索的方法,以返回多个条件的列和行引用

#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您可以使用逻辑的
&
)并将多个条件传递给行选择器,如下所示:

SalesData[c(SalesData$Appliance==“TV”&SalesData$LastYear==5),][[3]]
#[1] 5
使用
的替代方法如下:

with(SalesData,SalesData[Appliance==“TV”&LastYear==5,][[3]]))
#[1] 5
这是一个数字输出,您可以这样做


SalesData[c(SalesData$Appliance==“TV”&SalesData$LastYear==5),][[3]您可以使用逻辑
&
)并将多个条件传递给行选择器,如下所示:

SalesData[c(SalesData$Appliance==“TV”&SalesData$LastYear==5),][[3]]
#[1] 5
使用
的替代方法如下:

with(SalesData,SalesData[Appliance==“TV”&LastYear==5,][[3]]))
#[1] 5
这是一个数字输出,您可以这样做


SalesData[c(SalesData$Appliance==“TV”&SalesData$lastnear==5),[[3]]我喜欢使用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)
SalesData%
过滤器(设备==“TV”&去年==5)

我喜欢使用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)
SalesData%
过滤器(设备==“TV”&去年==5)

我不明白您对该专栏的预期结果。当您说我想搜索数据帧(行、列)引用,其中Appliance=TV,其中LastYear=5时,您期望的输出是什么?它表示您想要作为结果的列是输入的一部分。您能否显示该输入的预期输出?也许你可以展示一下你希望如何进行输入,我想要的预期输出是第3行第3列。然后,我计划用它来更新数据框,方法是:SalesData[3,3]当你说“多个项目”时,你的意思是一个项目是你的示例,Appliance=TV,其中LastYear=5,并且你想继续这样做,例如,
Appliance=Radio,其中LastYear=6,Appliance=TV,其中ThisYear=5,
。在哪里需要多个输出?或者您是否将
Appliance=TV
视为1项,将
LastYear=5
视为2项,并且“多项”将这2项与“and”相结合?但是由于列是输入的一部分,问题似乎是*哪一行符合这些标准(
Appliance==TV
LastYear==5
),哪一列是去年的
?(因为今年
是输入的一部分)
是如何组合的<代码>我的行=哪个(SalesData$Appliance==“TV”和SalesData$LastYear==5)
。要更新,因为您已经知道列名,所以可以使用
SalesData[my_row,“LastYear”]=5000
。或者,如果您确实想要列号,
my\u col=which(name(SalesData)==“LastYear”)
,那么
SalesData[my\u row,my\u col]我不明白您对该列的预期结果是什么。当您说我想搜索数据帧(行、列)引用,其中Appliance=TV,其中LastYear=5时,您期望的输出是什么?它表示您想要作为结果的列是输入的一部分。您能否显示该输入的预期输出?也许你可以展示一下你希望如何进行输入,我想要的预期输出是第3行第3列。然后,我计划用它来更新数据框,方法是:SalesData[3,3]当你说“多个项目”时,你的意思是一个项目是你的示例,Appliance=TV,其中LastYear=5,并且你想继续这样做,例如,
Appliance=Radio,其中LastYear=6,Appliance=TV,其中ThisYear=5,
。在哪里需要多个输出?或者您是否将
Appliance=TV
视为1项,将
LastYear=5
视为2项,并且“多项”将这2项与“and”相结合?但是由于列是输入的一部分,问题似乎是*哪一行符合这些标准(
Appliance==TV
LastYear==5
),哪一列是去年的
?(因为今年
是输入的一部分)
是如何组合的<代码>我的行=哪个(SalesData$Appliance==“TV”和SalesData$LastYear==5)
。要更新,因为您已经知道列名,所以可以使用
SalesData[my_row,“LastYear”]=5000
。或者,如果您确实需要列号,
my_col=which(name(SalesData)==“LastYear”)
,那么
SalesData[my_row,my_col]您也可以执行SalesData[SalesData$Appliance==“TV”,SalesData$LastYear==5],如果您有另一行的值为
Appliance=TV,ThisYear=6,LastYear=5
,然后您的子设置中断。您还可以执行SalesData[SalesData$Appliance==“TV”,SalesData$LastYear==5],如果您有另一行的值为
Appliance=TV,ThisYear=6,LastYear=5,则您的子设置中断。