如何从csv文件中删除非字母字符和列

时间:2018-05-02 01:56:27

标签: r

我有一个csv文件,如下所示:

enter image description here

在某些部分,列中的数据如下:

enter image description here

所以你可以看到,因为" ="标志存在它想要将其转换为公式,但我需要的是这个案例中的单词" rama ......

我已从垃圾邮件文件中提取此术语,并将R转换为稀疏矩阵。所以我的问题是如何摆脱R中此标题中的非字母数字字符,然后再将其转换为csv文件?

由于

2 个答案:

答案 0 :(得分:1)

如果您需要文字答案,可以尝试使用gsub替换任何包含一个或多个非字母数字字符的条目:

df <- data.frame(v1=c(1,2,3), v2=c("#NAME?", "two", "#NAME?"),
    stringsAsFactors=FALSE)
df <- data.frame(sapply(df, function(x) gsub(".*[^A-Za-z0-9].*", "", x)))
df

  v1  v2
1  1    
2  2 two
3  3    

Demo

但是这里最好/最简单的事情可能就是修复你的Excel公式,以便捕获这些错误,并显示空字符串或其他一些明智的消息。从我所看到的,这基本上是一个Excel,而不是R,问题。

答案 1 :(得分:0)

您可以使用gsub

## A dummy matrix
example <- matrix(paste0("=", letters[1:9]),3,3)
#     [,1]  [,2]  [,3] 
#[1,] "= a" "= d" "= g"
#[2,] "= b" "= e" "= h"
#[3,] "= c" "= f" "= i"

您可以在"="

中将""替换为gsub来删除## Replacing the "=" by "" (nothing) gsub("=", "", example) # [,1] [,2] [,3] #[1,] "a" "d" "g" #[2,] "b" "e" "h" #[3,] "c" "f" "i"
## Removing the "=" in the first row
example <- gsub("=", "", example[,1])
#     [,1] [,2] [,3]
#[1,] "a"  "d"  "g" 
#[2,] "=b"  "=e"  "=h" 
#[3,] "=c"  "=f"  "=i" 

或仅在第一行(或列名等)

{{1}}