读取一列具有空格

时间:2018-01-26 21:13:48

标签: r

所以我有一个csv文件,其内容看起来像这样。

dat1 = data.frame(val = c("21,303 ", "21,000 ", 
                         "23,000 ", 200, 100, 200))
dat1

val列中某些值的末尾基本上有制表符/空格。

当我使用fread或read_csv将数据导入R时,它会生成这样的结果,其中所有内容都是字符值,并且\ t已添加到列中

dat2 = data.frame(val = c("\t21,303", "\t21,000", "\t23,000", 
                         "200", "100", "200"))
dat2

只做一个基本的导入命令

dat = fread("")
dat = readr::read_csv("")

关于如何将数据导入R的任何想法都会给列提供标签/空格和数字?

3 个答案:

答案 0 :(得分:2)

我只想使用gsub删除任何非数字的内容:

dat$val <- as.numeric(gsub("\\D","",dat$val))

这将找到任何不是数字的内容并将其从字符串中删除。

输出:

1    21303
2    21000
3    23000
...

答案 1 :(得分:2)

“\ t”表示标签。你有很多选择。

最简单的一个是运行gsub。

dat2$val <- as.numeric(gsub("[\t]","", dat2$val))

答案 2 :(得分:1)

您可以使用data.table尝试这种有效的方法。

data.table::setDT(dat2)
dat2[,val:=as.numeric(gsub("[^[:digit:] ]", "", val))]