查找以R中的值开头的字符串的出现

时间:2015-06-30 19:53:26

标签: r

是否有用于打印以(值)开头的数据集中包含的值总数的函数?

考虑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”开头的。它们包含“1.”作为子串

4 个答案:

答案 0 :(得分:5)

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)

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

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

答案 2 :(得分:0)

或者:

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

对于价值观本身:

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

答案 3 :(得分:0)

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

根据您的数据集(例如,如果版本号前导为零),您可能需要通过df[df<"2" & df>="1"]

扩展此建议的解决方案

以&#34; 1&#34;开头的值的总数在这种情况下,可以使用length(df[df<"2"])(或length(df[df<"2" & df >="1"]))获得。