R语言实现统计各句不同长度单词频次并生成对应数组
R语言单词长度统计实现方案
你已经完成了文本按空格拆分单词的前置步骤,后续代码直接追加运行即可得到要求的9行4列统计数组:
# 初始化结果矩阵:9行对应1-9字母长度,4列对应4个输入句子,默认值为0 result <- matrix( data = 0, nrow = 9, ncol = 4, dimnames = list( paste0(1:9, "字母长度"), paste0("第", 1:4, "句") ) ) # 逐句统计单词长度频次 for (sentence_idx in seq_along(words)) { # 计算当前句子每个单词的字符数 word_lengths <- nchar(words[[sentence_idx]]) # 仅保留1-9字母长度的单词,超出范围的不纳入统计 valid_lengths <- word_lengths[word_lengths %in% 1:9] # 统计各长度的出现次数 length_freq <- table(valid_lengths) # 将统计值填入矩阵对应位置 result[names(length_freq), sentence_idx] <- as.numeric(length_freq) } # 打印最终统计结果 print(result)
实现说明
- 提前初始化0值矩阵,没有对应长度单词的位置会自动保留0,不需要额外补值
- 用R内置的
nchar()函数直接计算单词字符长度,适配前置步骤拆分好的单词列表格式 - 统计前先过滤长度超出1-9范围的单词,避免矩阵索引报错
- 用
table()函数快速完成频次统计,不需要手动逐长度计数,代码更简洁
运行后得到的输出格式如下(数值为对应长度单词的出现次数):
第1句 第2句 第3句 第4句 1字母长度 1 1 2 0 2字母长度 0 2 2 2 3字母长度 0 1 2 3 4字母长度 2 3 2 2 5字母长度 1 5 2 2 6字母长度 1 0 1 0 7字母长度 0 1 1 1 8字母长度 0 0 0 0 9字母长度 0 1 0 1
内容的提问来源于stack exchange,提问作者user19485723
相关产品推荐
相关产品推荐

