如何在R中的某个单元格中查找值的数量?

时间:2015-10-08 00:57:00

标签: r dataframe

我在R中有一个看起来像的数据框:

              percent
 Input_SNP      9.123
 Set_1          8.713
 Set_2          7.666
 Set_3          7.091
 Set_4          7.601
 Set_5          5.461
 Set_6          9.992
 Set_7          5.555

除了我的句号超过Input_SNP。当我拨打class(data)时,它是“data.frame”类。我实际上有500套。我想计算哪些比例的集合的值大于或等于Input_SNP。在此示例中,7中的1个值大于或等于my Input_SNP。我想要一个具有此值的输出变量。如何在R中完成?

2 个答案:

答案 0 :(得分:2)

如果您的数据被称为df,那么您可以

inp <- rownames(df) == "Input_SNP"
with(df, percent[!inp] > percent[inp])
# [1] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE

这显示一个TRUE值。要获取我们可以执行的TRUE值的总数

with(df, sum(percent[!inp] > percent[inp]))
# [1] 1

对于价值本身,我们可以做到

with(df, percent[!inp][percent[!inp] > percent[inp]])
# [1] 9.992

数据:

df <- structure(list(percent = c(9.123, 8.713, 7.666, 7.091, 7.601, 
5.461, 9.992, 5.555)), .Names = "percent", class = "data.frame", row.names = c("Input_SNP", 
"Set_1", "Set_2", "Set_3", "Set_4", "Set_5", "Set_6", "Set_7"
))

答案 1 :(得分:2)

x <- df$percent[rownames(df) == "Input_SNP"]
ifelse(df >= x, 1, 0)
#             percent
#Input_SNP       0
#Set_1           0
#Set_2           0
#Set_3           0
#Set_4           0
#Set_5           0
#Set_6           1
#Set_7           0