You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dplyr的mutate生成字符串长度列时结果不符合预期的问题

问题解决

你的代码里用length(sym)得到的是整个列的元素数量,而非单个字符串的长度。要实现预期效果,只需把length()换成nchar()即可,nchar()会逐个处理向量中的每个字符串元素:

library(dplyr)

dfr <- data.frame(sym = c("aa","bbb","c","dd"))

dfr %>% mutate(len = nchar(sym))

运行后输出符合预期:

sym len
1  aa   2
2 bbb   3
3   c   1
4  dd   2

原因说明

  • length()函数作用于整个向量(即sym列),返回的是向量包含的元素总数(这里是4),因此mutate会将这个值重复填充到每一行。
  • nchar()函数则是对向量中的每个元素单独计算字符长度,正好满足你需要为每行生成对应字符串长度的需求。

内容的提问来源于stack exchange,提问作者M C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:54:25