[英]How can I use lapply, sapply or apply to filter a data frame in R?
我正在嘗試刪除所有不包含 10 位數字和包含 10 個零的字段,我想通過 lapply 或 sapply 或應用 function 來實現這一點。 我下面的代碼不起作用:
lapply(df, function(x) filter(x %like% "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" | !x %in% "0000000000"))
10 個零是 10 位數字的一部分,因此您無需單獨測試它們。
df <- data.frame(a = c('123456789', '123456789', '123'),
b = c('0000000000', '2345', '1234'))
result <- lapply(df, function(x) grep('\\d{10}', x, value = TRUE, invert = TRUE))
#$a
#[1] "123456789" "123456789" "123"
#$b
#[1] "2345" "1234"
您還可以使用nchar
來計算字符數。
result <- lapply(df, function(x) x[nchar(x) != 10])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.