【发布时间】:2021-11-18 01:06:36
【问题描述】:
['ax', 'byc', 'crm', 'dop']
这是一个字符串,我想要一个所有子字符串的计数,即这里的 4 作为输出。想要对包含此类字符串的整个列执行此操作。
【问题讨论】:
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
['ax', 'byc', 'crm', 'dop']
这是一个字符串,我想要一个所有子字符串的计数,即这里的 4 作为输出。想要对包含此类字符串的整个列执行此操作。
【问题讨论】:
我们可能会使用str_count
library(stringr)
str_count(str1, "\\w+")
[1] 4
或者也可以将字母数字字符提取到list 并得到lengths
lengths(str_extract_all(str1, "[[:alnum:]]+"))
如果是data.frame列,则将该列提取为向量并应用str_count
str_count(df1$str1, "\\w+")
str1 <- "['ax', 'byc', 'crm', 'dop']"
df1 <- data.frame(str1)
【讨论】:
这里有一些基本的 R 方法。我们在最后的注释中使用可重复定义的 2 行输入。不使用任何包。
lengths(strsplit(DF$b, ","))
## [1] 4 4
nchar(gsub("[^,]", "", DF$b)) + 1
## [1] 4 4
count.fields(textConnection(DF$b), ",")
## [1] 4 4
DF <- data.frame(a = 1:2, b = "['ax', 'byc', 'crm', 'dop']")
【讨论】: