【问题标题】:Removing elements with empty character "" in string vector删除字符串向量中带有空字符“”的元素
【发布时间】:2020-12-30 06:14:39
【问题描述】:

使用read.csv,我从 .csv 文件中读取了一个数据帧,该文件的数据排列如下:

team1 team2 team3
Andy  Alice  Karen
Bob   Belle  Kyle
Chad  Carol  
      Diana
team <- read.csv("team.csv")

数据框属于因子类,尺寸为 4x3。对于team1team3 列,额外的空行显示为""。 我想使用as.character 转换将列提取为向量。但是如何缩短这个向量排除 "" 元素?例如:

team1_list &lt;- as.character(team$team1) 包括尾随 "" 元素。我只想拥有("Andy", "Bob", "Chad") 的向量而不是("Andy", "Bob", "Chad", "")

【问题讨论】:

  • 试试这个team1_list &lt;- as.character(team$team1[team$team1!=""])team1_list &lt;- as.character(team$team1[levels(team$team1)!=""])

标签: r


【解决方案1】:

由于没有数据,您可以尝试以下选项之一:

选项 1:

#Code1
team1_list <- as.character(team$team1[team$team1!=""])

选项 2:

#Code2
team1_list <- as.character(team$team1[levels(team$team1)!=""])

【讨论】:

    【解决方案2】:

    使用stringi 包的stri_remove_empty 的另一个选项来删除向量的空字符串。

    library(stringi)
    str <- c("Andy", "Bob", "Chad", "")
    team1_list <- as.character(stri_remove_empty(str, na_empty = FALSE))
    team1_list
    #[1] "Andy" "Bob"  "Chad"
    

    【讨论】:

      【解决方案3】:

      base R使用nzchar更容易

      str1[nzchar(str1)]
      #[1] "Andy" "Bob"  "Chad"
      

      数据

      str1 <- c("Andy", "Bob", "Chad", "")
      

      【讨论】:

        猜你喜欢
        • 2011-12-02
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多