从字符串字符中删除“”(空值)

时间:2018-12-10 20:14:59

标签: r

我已经环顾了几个小时,无法从下面的字符串字符中删除“”。

c(“最终”,“ A”,“ 7.43”,“ 8.50”,“ 15.93”,“ 2.00”, “ 1.00”,“ 0.30”,“ 0.37”,“ 7.43”,“ 8.50”,“ 0.50”,“ 0.67”,“”, “”,“”,“”,“”,“”,“”,“ B”,“ 7.00”,“ 3.77”,“ 10.77”, “ 7.00”,“ 1.67”,“ 3.77”,“”,“”,“”,“”,“”,“”,“”,“”,

在此数据集中,我还有更多这些空值,只是想在组织起来作为

之类的数据框之前摆脱它们
  

最终   乙   7.43 7.43   8.50 8.50   15.93 0.50   2.00 0.67   1.00   0.30

谢谢

1 个答案:

答案 0 :(得分:0)

您可以将基础grepvalues = TRUE一起使用。它将在字符向量中搜索给定的正则表达式模式,并返回找到该模式的所有值。

您可以通过几种方式考虑模式的逻辑。可能有人会认为它是用“单词”字符(即字母,数字或下划线)保留值。

x <- c("Final", "A", "7.43", "8.50", "15.93", "2.00", "1.00", "0.30", "0.37", " 7.43", " 8.50", "0.50", "0.67", " ", " ", " ", " ", " ", " ", " ", "B", "7.00", "3.77", "10.77", " 7.00", "1.67", "3.77", " ", " ", " ", " ", " ", " ", " ", " ")

grep("\\w", x, value = T)
#>  [1] "Final" "A"     "7.43"  "8.50"  "15.93" "2.00"  "1.00"  "0.30" 
#>  [9] "0.37"  " 7.43" " 8.50" "0.50"  "0.67"  "B"     "7.00"  "3.77" 
#> [17] "10.77" " 7.00" "1.67"  "3.77"

另一种方法是查找带有不是空格的字符(\\S\\s的取反)的值:

grep("\\S", x, value = T)
#>  [1] "Final" "A"     "7.43"  "8.50"  "15.93" "2.00"  "1.00"  "0.30" 
#>  [9] "0.37"  " 7.43" " 8.50" "0.50"  "0.67"  "B"     "7.00"  "3.77" 
#> [17] "10.77" " 7.00" "1.67"  "3.77"

reprex package(v0.2.1)于2018-12-10创建