[英]More efficient function for this?
我有一個數據幀,其中有1億多行。 我需要對帶有特定字符(正則表達式)的行進行子集化,但是這會花費很長時間,因為它會逐行讀取輸入內容。 有更有效的方法嗎?
數據和功能的示例。 謝謝!
search_name = function(name) {
tf = apply(X = hpot["NAME"],
MARGIN = 1,
FUN = grepl,
pattern = name)
df = hpot[tf == TRUE, ]
return(df)
}
hpot = data.frame(NAME = c("alpha", "beta", "gamma", "delta", "alpha2",
"beta3", "gamma4", "zeta"),
AGE = c(12, 23, 34, 45, 56, 67, 78, 89),
HEIGHT = c(123, 134, 145, 156, 167, 178, 189, 190),
HOUSE = c("A", "B", "C", "D", "A", "B", "C", "D"),
stringsAsFactors = FALSE)
>search_name("beta")
NAME AGE HEIGHT HOUSE
2 beta 23 134 B
6 beta3 67 178 B
謝謝@lmo!
search_name = function(name) {
return(hpot[grepl(name, hpot$NAME, fixed = TRUE), ])
}
> search_name("beta")
NAME AGE HEIGHT HOUSE
2 beta 23 134 B
6 beta3 67 178 B
> search_name("alpha")
NAME AGE HEIGHT HOUSE
1 alpha 12 123 A
5 alpha2 56 167 A
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.