首页 > 解决方案 > 在 R 中显示包含数字范围(0-9 之间)的行数

问题描述

我正在尝试使用 R 计算我的数据集中包含一系列数字(例如 0 到 9 之间)的行数(称为数据)。我没有创建数据框,我的数据集直接从 csv 文件导入到R。

数据集示例(输入)

信息
我要等3天
感觉很累
不可能已经是晚上 7 点了
现在为时已晚
这很漂亮

所以输出将是 2 行(第 1 行和第 2 行)

我尝试了以下代码,但它为我提供了错误的帖子输出数量(3) - 所以我知道我肯定做错了什么。

    data = read.csv (xxxxxx)
    #count number of rows that contain numbers between 0 and 9 
    numbers= filter(data, !grepl("[0-9]",MESSAGE))
    length(numbers) 

先感谢您。

标签: rfilterrows

解决方案


如果至少有一位数字,也许您可​​以尝试如下代码

> length(grep("\\d", MESSAGE, value = TRUE))
[1] 2

如果您想找出有单个数字的行,您可以尝试

> length(grep("\\b\\d(?![0-9])", MESSAGE, value = TRUE, perl = TRUE))
[1] 2

数据

MESSAGE <- c(
  "I have to wait 3 days",
  "Feel quite tired",
  "No way is 7pm already",
  "It is too late now",
  "This is beautiful"
)

推荐阅读