所以我有一个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的任何想法都会给列提供标签/空格和数字?
答案 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))]