答案 0 :(得分:0)
在示例中,您似乎想删除带有NA的行。使用na.omit
可以轻松完成:
df <- data.frame(
x = c(NA, 1, 2, 3, 4),
y = c(10, NA, 18, 22, NA)
)
df
x y
1 NA 10
2 1 NA
3 2 18
4 3 22
5 4 NA
现在省略所有缺少值的行:
df2 <- na.omit(df)
df2
x y
3 2 18
4 3 22
但是请注意,na.omit
不仅会删除具有NA的单元格,还会删除整行!
答案 1 :(得分:0)
您可以像这样对数据进行子集删除,以删除所有带有单词Référence
的行:
data <-data [!(data $ column1 ==“Référence”),]
很明显,用data
代替您使用的数据框的名称。
答案 2 :(得分:0)
您应该使用output_dim
,而不是grep
。使用grepl
时,将获得与模式匹配的行索引,而使用grep
时,将获得布尔向量。您可以这样做:
grepl
示例:
rowIndexes = grep(x = df$col1, pattern = "refer")
df = df[-c(rowIndexes, rowIndexes+1, rowIndexes+2),]
如果要在o后面的一组特定行之前删除> df
a b c d e
1 00100 44 5 69 fr
2 refer 34 35 7 df
3 thisalso 46 15 167 as
4 thistoo 46 15 167 as
5 00100 11 5 67 uu
6 00100 563 25 23 tt
7 00100 44 5 69 fr
8 refer 34 35 7 df
9 thisalso 46 15 167 as
10 thistoo 11 5 67 uu
11 00100 563 25 23 tt
12 00100 44 5 69 fr
13 refer 34 35 7 df
14 thisalso 46 15 167 as
15 thistoo 11 5 67 uu
16 00100 563 25 23 tt
17 00100 563 25 23 tt
18 00100 563 25 23 tt
> rowIndexes = grep(x = df$col1, pattern = "refer")
> df = df[-c(rowIndexes, rowIndexes+1, rowIndexes+2),]
> df
a b c d e
1 00100 44 5 69 fr
5 00100 11 5 67 uu
6 00100 563 25 23 tt
7 00100 44 5 69 fr
11 00100 563 25 23 tt
12 00100 44 5 69 fr
16 00100 563 25 23 tt
17 00100 563 25 23 tt
18 00100 563 25 23 tt
行,请执行以下操作:
N
其中rowIndexes = grep(x = df$col1, pattern = "refer")
N = 2
indexesToRemove = sapply(rowIndexes, function(x){ x + (0:N) })
df = df[-indexesToRemove, ]
是整数。如果N为正,它将在带有“ refer”的行之后删除N行。如果N为负,这将删除N个先前的行。