我有一个csv文件,如下所示:
在某些部分,列中的数据如下:
所以你可以看到,因为" ="标志存在它想要将其转换为公式,但我需要的是这个案例中的单词" rama ......
我已从垃圾邮件文件中提取此术语,并将R转换为稀疏矩阵。所以我的问题是如何摆脱R中此标题中的非字母数字字符,然后再将其转换为csv文件?
由于
答案 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
但是这里最好/最简单的事情可能就是修复你的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}}