将字符串向量转换为整数向量

 手机用户2502896697 发布于 2023-02-08 16:24

以下按预期工作:

> as.integer(c("2","3"))
[1] 2 3

但是当我尝试(使用stringr包)时:

> str_split("55,66,77",",")
[[1]]
[1] "55" "66" "77"
> as.integer(str_split("55,66,77",","))
Error: (list) object cannot be coerced to type 'integer'

有没有其他方法将形式为"53,56,77"的字符串转换为具有这三个数字的向量?我是一个完整的新手,任何有关此文档的提示都将受到高度赞赏.

2 个回答
  • 如果你有一个字符串向量并希望每个字符串的值,lapply将迭代列表:

    v <- c("55,66,77", "1,2,3")
    lapply(str_split(v, ','), as.integer)
    ## [[1]]
    ## [1] 55 66 77
    ## 
    ## [[2]]
    ## [1] 1 2 3
    

    2023-02-08 16:27 回答
  • str_split返回一个列表.您必须访问正确的列表元素:

    as.integer(str_split("55,66,77",",")[[1]]) ## note the [[1]]
    # [1] 55 66 77
    

    或者您可以使用unlist将完整列表转换为向量:

    as.integer(unlist(strsplit("55,66,77",",")))
    # [1] 55 66 77
    

    2023-02-08 16:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有