查找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,则您的子设置中断。