根据R中的多个条件提取值

时间:2017-04-16 20:10:18

标签: r

快速提问 - 我有一个类似的数据框(严重性),

                    industryType  relfreq   relsev
 1              Consumer Products 2.032520 0.419048
 2                 Biotech/Pharma 0.650407 3.771429
 3        Industrial/Construction 1.327913 0.609524
 4  Computer Hardware/Electronics 1.571816 2.019048
 5                Medical Devices 1.463415 3.028571
 6                       Software 0.758808 1.314286
 7     Business/Consumer Services 0.623306 0.723810
 8             Telecommunications 0.650407 4.247619

如果我想拉出医疗设备的relfreq(第5行) - 我怎么能只将该值归类?

我正在考虑只是建立索引和执行严重性$ relfreq [[5]],但我会在一个更大的函数中使用这一行,用户将指定行业,即

example <- function(industrytype) {
   weight <- relfreq of industrytype parameter

   thing2 <- thing1*weight
   return(thing2)
 }

因此,如果我按索引进行子集,是否有一种方法可以知道哪个索引对应于函数参数中指定的行业类型?或者是否更容易/通过行业名称对relfreq列进行子集化?

2 个答案:

答案 0 :(得分:1)

您需要首先选择感兴趣的行,然后保留您请求的2列(industryType和relfreq)。 有一个很棒的软件包可以让你直观地使用tidyverse library(tidyverse)

来完成这个任务

data_want <- severity %>% subset(industryType =="Medical Devices") %>% select(industryType, relfreq)

在这里,您从左到右阅读,%>%用于将结果传递给下一步,就像嵌套一样。

答案 1 :(得分:0)

我认为选择整行更好,然后选择您想要查看的列。

frame <- severity[severity$industryType == 'Medical Devices',]
frame$relfreq