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

R语言:如何统计行长度并筛选不符合指定格式的DataFrame行?

问题解答

1. 统计行长度相关命令

在R中:

  • 统计数据框的总行数,用nrow()函数,比如nrow(df)会返回数据框df的行数。
  • 统计每行中字符串的字符长度,可以用base R的nchar()或stringr包的str_length(),结合apply遍历每行:
    # Base R实现:统计date1、date2列每行的字符长度
    apply(df[, c("date1", "date2")], 1, function(x) nchar(x))
    
    # stringr包实现
    library(stringr)
    apply(df[, c("date1", "date2")], 1, function(x) str_length(x))
    

2. 筛选不符合指定格式的行

通过判断date1或date2的字符长度是否不等于17,即可筛选出目标行,提供两种实现方式:

方式一:Base R

# 筛选date1或date2长度不为17的行
new_df <- df[which(nchar(df$date1) != 17 | nchar(df$date2) != 17), ]

方式二:dplyr+stringr(更简洁)

先安装并加载依赖包:

install.packages(c("dplyr", "stringr"))
library(dplyr)
library(stringr)

再执行筛选:

new_df <- df %>% 
  filter(str_length(date1) != 17 | str_length(date2) != 17)

运行后得到的new_df即为预期结果:

> new_df
  id         date1             date2
1  1 2014-Dec 2018 Feb 2016-Dec 2018
2  2     2009-2010     2014-Dec 2018

内容的提问来源于stack exchange,提问作者Erik Brole

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:05:23