簡體   English   中英

如何計算特定列中滿足條件的出現次數(4 個字母)

[英]How to count number of occurrences in a specific column that meet a condition (4 letters)

x = c(1,2,3,4,5)
y = c("AA","BB","CC", "AAAA","BBBB")
data1 = data.frame(x,y)
data1

^^我希望輸出是 y 列中 4 個字母出現的次數。 期望的輸出是 2

我想計算數據框中給定列中出現 4 個字母因子觀測值的次數。 我該怎么做呢?

如果您只想提取和計算恰好有 4 個字母(任何字母,不一定相同)的因子值,那么您可以這樣做:

步驟 1--定義要匹配的模式:

pattern <- "\\w{4}"

第 2 步——定義一個函數來只提取原始匹配:

extract <- function(x) unlist(regmatches(x, gregexpr(pattern, x, perl = T)))

第 3 步——將函數應用於感興趣的數據:

extract(data1$y)

這就是結果:

[1] "AAAA" "BBBB"

第 4 步 - 要計算您可以使用的匹配數量length

length(extract(data1$y))
[1] 2

編輯:您也可以使用str_extract從包裝stringr

步驟1:將結果存儲在一個矢量extr

extr <- str_extract(data1$y, "\\w{4}")

第 2 步:使用length ,否定運算符! is.na ,一個測試 NA 並評估為 TRUE 和 FALSE 的函數,您可以計算測試評估為 FALSE 的次數:

length(extr[!is.na(extr)])
[1] 2

如果y列中的字符串總是由字母組成,也許您可​​以嘗試nchar

sum(nchar(as.vector(data1$y))==4)

# > sum(nchar(as.vector(data1$y))==4)
#   2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM