【问题标题】:How to get the length of elements in a character vector in R? [duplicate]如何获取R中字符向量中元素的长度? [复制]
【发布时间】:2024-05-03 04:50:02
【问题描述】:

下面,我预计length(group.name) 会返回3。但它只返回1。是否有 Base R 解决方案来获取字符向量的元素数量?

group.name = c("bigii, ggigi, ciggi")
length(group.name)
#[1] 1

【问题讨论】:

  • 也许试试这个? lapply(strsplit(group.name,","),length)?
  • @NelsonGon 你可以使用lapply,而不是lengths(strsplit(group.name, ",")

标签: r regex string function character


【解决方案1】:

一个选项是用str_count计算单词

library(stringr)
str_count(group.name, "\\w+")
#[1] 3

或者将所有非分隔符都替换为空白,使用nchar获取字符数,加1(因为分隔符比字数少1)

nchar(gsub("[^,]+", "", group.name)) + 1
#[1] 3

或使用regexpr

lengths(gregexpr("\\w+", group.name))
#[1] 3

可以变成函数

f1 <- function(stringObj){

  nchar(gsub("[^,]+", "", stringObj)) + 1
 }

f1(group.name)
#[1] 3

【讨论】:

  • 刚刚检查,你有没有收到我的另一个问题?
  • @rnorouzian 我今天会检查一下。昨天有点忙。
【解决方案2】:

group.name 是一个字符串。我认为您正在寻找以逗号分隔的每个单词的不同计数,您可以通过以逗号分隔然后计数它来做到这一点length

length(strsplit(group.name, ",")[[1]])
#[1] 3

【讨论】:

    最近更新 更多