选择具有相同值的数据框中的行

时间:2016-02-24 21:59:25

标签: r grep dataframe

我有一个具有唯一值的数据框$ Number标识多边形相交的特定点。一些点(即56)具有3个相交的多边形。我想提取以56开头的三行。

    df <- cbind(Number = rownames(check), check)
    df

df table

未来的问题是我将以10,000点的价格申请此项,并且不会知道重复的数字,例如&#34; 56&#34;。那么有没有办法让一个通用表达式选择具有一般匹配的行而不知道该值?

3 个答案:

答案 0 :(得分:1)

我只是将$ Number列更改为数字字段,然后向下舍入为整数数据。

    numeric <- as.numeric(as.character(df$Number))
    Id <- floor(numeric)

答案 1 :(得分:0)

如果我们只想要超过3个$ Number的$ Number,那么我们可以使用dplyr按$ Number分组,如果它有超过3个计数则保留$ Number

library(dplyr)

# Data
df <- data.frame(Number = c(1,1,1,2,2,3,3))

# Filtering
df %>% group_by(Number) %>% filter(n() >= 3)

答案 2 :(得分:0)

您可以通过以下方式获得所需的输出:

subset2 <- function(n) df[floor(df$Number) == n,]

其中df是数据集的名称,Number是目标列的名称。我们可以根据需要填写n

#Example
df <- data.frame(Number=c(1,3,24,56.65,56.99,56.14,66),y=sample(LETTERS,7))
df
#   Number y
# 1   1.00 J
# 2   3.00 B
# 3  24.00 D
# 4  56.65 R
# 5  56.99 I
# 6  56.14 H
# 7  66.00 V

subset2(56)
#   Number y
# 4  56.65 R
# 5  56.99 I
# 6  56.14 H