我正在尝试使用R中的read.table()读取以制表符分隔的文件(在线提供,使用ftp)。
问题似乎是对于第三列,某些行的字符串包含撇号字符' 等字符以及百分比字符%例如资本收益15.0%和 Bob的收入,例如 -
810 | 13 |资本收益率15.0%|
170 | -20 |鲍勃的收入|
100 | 80 |收入|
要处理撇号字符,我使用以下语法
df <- read.table(url('ftp://location'), sep="|", quote="\"", as.is=T)
然而,上面显示的这种语法似乎并没有处理有问题的第三列包含具有百分比字符的字符串的行,因此该表的整个剩余部分被函数卡在一个字段中。
我还试图通过使用colClasses df <- read.table(url('ftp://location'), sep="|", quote="\"", as.is=T, colClasses=c("numeric", "numeric", "NULL"))
完全忽略第三列,但该函数仍然在第三列中存在百分比字符的行上进行故障转移。
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
使用扫描功能代替read.table包装器。你可以控制任何东西。并且更快,特别是如果你使用&#34;什么&#34;选项表示R你在扫描什么。
dat <- scan(file = "data.tsv", # Substitute this for url
what = list(c(rep("numeric",2), "character")), # describe columns
skip = 0, # lines to skip
sep = "|") # separator
而不是文件,请使用您的网址。 在这种情况下,扫描期望2列&#34;数字&#34;后跟一列&#34;字符&#34;
输入
?scan
获取完整的选项列表。