我有一个大数据框,有 22 列。我想根据第二列中的值进行过滤,因此如果该值不以“X”开头,我想删除该行。如果第二列中的此值包含星号,我还想删除该行。
test <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
secondcolumn <- c("Xidfhsfd*isjdf", "Hsuhdfskdh", "Xwidfsoid", "X*sdkfjjhsd", "Xkdsfhsd", "Uskesfudhsk", "Sdfukhsdiu", "Osdfihsdoiuh", "Xsodifdsifj")
othercolumn <- c(3, 5, 7,2, 5, 8, 3, 0, 5)
df <- as.data.frame(test, secondcolumn, othercolumn)
Run Code Online (Sandbox Code Playgroud)
这将如何完成?在这个例子中,我想删除第 1、2、4、6、7、8 和 9 行。
谢谢!
希望这有效
# Condition 1: value start with "X"
cond1 <- grep("^X", d[, 2])
# Condition 2: doesn't contain "*"
cond2 <- grep("\\*", d[, 2], invert = TRUE)
# Rows where any of condition is true
wantedRows <- intersect(cond1, cond2)
# Table without those rows
d[wantedRows, ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4716 次 |
| 最近记录: |