【问题标题】:extract all number in 1:1000 which begin first digit==2 [closed]提取 1:1000 中的所有数字,从第一个数字开始 ==2 [关闭]
【发布时间】:2020-12-22 18:13:01
【问题描述】:

强调文本我有一个矢量数据,我想从 2 个示例开始获取所有数据

x

我想得到这个答案: “2”、“22”、“222”

【问题讨论】:

  • 你的意思是只有第一个数字还是所有数字?
  • 到目前为止,您自己尝试过什么来解决这个问题...?
  • 这个问题不够清楚,需要详细说明目标是什么

标签: r substr


【解决方案1】:

如果我们想返回只有 2 的数字,一个选项是 grep 以匹配从字符串的开头 (^) 到结尾的一个或多个 '2' (2+) 的模式($) 的字符串

as.numeric(grep('^2+$', x, value = TRUE))
#[1]   2  22 222

或者对于第一个数字,只需指定开始 (^) 后跟数字 2

as.numeric(grep('^2', x, value = TRUE))

substr

x[substr(x, 1, 1) == 2]

数据

x <- 1:1000

【讨论】:

    【解决方案2】:

    我不确定你要找的是哪一个

    > x[startsWith(as.character(x), "2")]
      [1]   2  20  21  22  23  24  25  26  27  28  29 200 201 202 203 204 205 206
     [19] 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
     [37] 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
     [55] 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
     [73] 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278
     [91] 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
    [109] 297 298 299
    

    > x[grepl("^2+$", x)]
    [1]   2  22 222
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2014-06-12
      相关资源
      最近更新 更多