在R中查找以某个值开头的字符串出现次数

3

有没有一个函数可以打印出以某个值开头的数据集中包含的总数?

考虑这个由4个版本号组成的数据集,

df <- c("1.20", "3.1.20", "2.45", "1.10", "1.67.4.3", "5.200.1", "70.1.2.7")

我需要仅打印版本号为1.x的信息。 我的输出将会是:
1.20, 1.10, 1.67.4.3

由于这些版本号"1."开头,所以我不想打印3.1.2070.1.2.7,尽管它们包含"1."作为子串

4个回答

8
df <- c("1.20", "3.1.20", "2.45", "1.10", "1.67.4.3", "5.200.1", "70.1.2.7")
grep("^1\\.", df, value = TRUE)

1
获取字符(0)输出 - vardha

0

使用括号内的函数substring进行子集提取:

df[substring(df, 1,2) == "1."]

0

或者:

sum(substr(df, 1, 2) == "1.")
[1] 3

至于这些值本身:

df[substr(df, 1, 2) == "1."]
[1] "1.20"     "1.10"     "1.67.4.3"

我修改了代码,这样就不会选择像“10.”这样的值。 - Paulo MiraMor

0
df[df<"2"]
#[1] "1.20"     "1.10"     "1.67.4.3"

根据您的数据集(例如,如果有以零开头的版本号),您可能需要通过 df[df<"2" & df>="1"] 扩展此建议的解决方案。

在这种情况下,以“1”开头的值的总数可以通过 length(df[df<"2"])(或 length(df[df<"2" & df >="1"]) )获得。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接